2012-07-01 181 views
3

我正在開發一個帶有導軌的shopify應用程序,我正在遵循這兩個鏈接進行OAuth2身份驗證:http://api.shopify.com/authentication.html & https://github.com/Shopify/shopify_apiShopify OAuth身份驗證不會返回永久訪問令牌

我已經陷入了我要求永久訪問令牌的步驟。我已按照身份驗證文檔中的說明將client_id,client_secret &代碼參數發佈到https://SHOP_NAME.myshopify.com/admin/oauth/access_token,但我沒有收到訪問令牌。我得到的迴應是狀態200與一個空的身體和頭。

代碼:

http = Net::HTTP.new("https://#{params[:shop].to_s.strip}") 
request = Net::HTTP::Post.new("/admin/oauth/access_token") 
request.set_form_data({ 
    "client_id" => ShopifyApp.configuration.api_key, 
    "client_secret" => ShopifyApp.configuration.secret, 
    "code" => params[:code].to_s.strip 
}) 
response = http.request(request) 

響應:

@body=[], 
@header={}, 
@status=200, 

什麼是困惑我更是(我可能是錯在這裏,但)的shopify_app似乎並沒有做到這一步。 我也發現了這個相似的問題:Unable to receive a permanent access token for my Shopify App但它還沒有被回答。

編輯:刪除.myshopify.comhttp = Net::HTTP.new("https://#{params[:shop].to_s.strip}"),因爲它是一個錯字。

編輯2:
我嘗試從HTML表單發佈給我的結果,但是我無法使用上面的示例或與其他客戶端gem在我的代碼中工作。
對這裏發生的事情仍然非常困惑。

回答

1

請參閱question you linked to提供的答案。

如果這對您來說不是同一個問題,那麼您可以發送正在發送/接收的原始請求和響應數據嗎?您正在使用的API密鑰也會有所幫助。

我建議在命令行上使用curl來嘗試它,如果這不起作用,您可以在每個步驟中發佈每個捲曲字符串。

shopify_app依賴於omniauth和omniauth-shopify-oauth2,它處理oauth認證。

+0

當我從一個基本的HTML表單發送參數時,我能夠獲得訪問令牌,所以我認爲這個問題可能與我從應用內發佈數據的方式有關。 –

+0

另外從omniauth-shopify-oauth2返回的令牌是永久訪問令牌還是臨時訪問令牌? 我完全接受錯誤,因爲我還在學習,但它看起來對我來說是暫時的。 –

+0

它應該是永久令牌。 –