我想我們有類似的想法!我遇到了和你一樣的問題。我認爲我們都被文檔弄糊塗了!
我生成我的應用程序使用shopify_app
寶石。這login_controller.rb
創建了以下方法:
def finalize
if response = request.env['omniauth.auth']
sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
session[:shopify] = sess
flash[:notice] = "Logged in"
redirect_to return_address
session[:return_to] = nil
else
flash[:error] = "Could not log in to Shopify store."
redirect_to :action => 'index'
end
end
線是(ShopifyAPI::Session.new
)3做Step 2 of the Shopify Authentication我們。它爲我們提供了一個永久訪問令牌。
變量sess
現在將包含兩件事情:
- 的* .myshopify.com店的域(
url
)
- 永久訪問令牌保存以備將來使用(
token
)
正如John Duff所說 - 我們已經有了訪問令牌! 我們不需要郵寄到https://SHOP_NAME.myshopify.com/admin/oauth/access_token
。它是由shopify_app
寶石生成的代碼爲我們處理的。
在我的finalize方法,我添加了一行:
def finalize
if response = request.env['omniauth.auth']
sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
Shop.find_or_create_by_myshopify_domain(sess.url, access_token: sess.token)
...
這將創建一個店鋪,併爲其分配訪問令牌。我的商店模型具有屬性myshopify_domain
和access_token
。
在未來,如果我想使用ShopifyAPI對於店,我可以只需按照shopify_api gem homepage
上的說明,我花了幾個小時試圖螺母這一個。我不確定文檔如何更清晰。希望如果問題再次出現,人們會發現這個StackOverflow頁面!
我希望這對你有所幫助。
乾杯, 尼克
你能發佈的原始請求和響應?您正在使用的API密鑰也會有幫助。 –
我添加了一些圖片,顯示我得到的完整回覆。還有API密鑰(客戶端ID)。感謝您的關注! – Augusto