Shopify OAuth身份验证不会返回永久访问令牌
我正在开发一个带有导轨的shopify应用程序,我正在遵循这两个链接进行OAuth2身份验证:http://api.shopify.com/authentication.html
& https://github.com/Shopify/shopify_api
。Shopify 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.com
从http = Net::HTTP.new("https://#{params[:shop].to_s.strip}")
,因为它是一个错字。
编辑2:
我尝试从HTML表单发布给我的结果,但是我无法使用上面的示例或与其他客户端gem在我的代码中工作。
对这里发生的事情仍然非常困惑。
请参阅question you linked to提供的答案。
如果这对您来说不是同一个问题,那么您可以发送正在发送/接收的原始请求和响应数据吗?您正在使用的API密钥也会有所帮助。
我建议在命令行上使用curl来尝试它,如果这不起作用,您可以在每个步骤中发布每个卷曲字符串。
shopify_app依赖于omniauth和omniauth-shopify-oauth2,它处理oauth认证。
当我从一个基本的HTML表单发送参数时,我能够获得访问令牌,所以我认为这个问题可能与我从应用内发布数据的方式有关。 –
另外从omniauth-shopify-oauth2返回的令牌是永久访问令牌还是临时访问令牌? 我完全接受错误,因为我还在学习,但它看起来对我来说是暂时的。 –
它应该是永久令牌。 –