无法接受永久性访问令牌我Shopify应用(Unable to receive a permanen

2019-07-30 04:24发布

我正在关注的Shopify指令来获得永久令牌特定的应用程序/商店组合( http://api.shopify.com/authentication.html )。

我能够获得临时令牌,然后使用一个简单的HTML表单获得一个永久的标记:

但我得到的回应是:{“错误”:“INVALID_REQUEST”}

你能帮我吗? 我找遍(#1,Shopify支持论坛,等...),但无法找到如何解决这个问题的线索。 我的应用程序是在网上和在Heroku主持。

谢谢,

Answer 1:

我认为,我们有类似的头脑! 我正经历着完全相同的问题,因为你。 我想我们都是通过文档糊涂了!

我使用生成的我的应用程序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

即(3号线ShopifyAPI::Session.new )正在做的Shopify认证的第二步我们。 它获取我们永久的访问令牌。

变量sess现在将包含两件事情:

  1. 店铺的* .myshopify.com域名( url
  2. 永久访问令牌保存以备将来使用token

正如约翰·达夫说 - 我们已经有一个访问令牌! 我们并不需要张贴到 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_domainaccess_token

在未来,如果我想使用ShopifyAPI对于店,我可以只需按照中的说明shopify_api宝石主页

我花了几个小时试图螺母这一个。 我不知道该文档如何能更清晰。 希望该问题再次出现时,人们发现这个StackOverflow的页面!

我希望这是对你的帮助。

干杯,尼克



Answer 2:

一旦一旦期满时使用的代码,你需要存储的令牌或申请新的代码。 在日志的请求中的一个成功,那么你继续做与失败,因为代码是过期相同的代码访问令牌请求。

再次尝试请求允许并且与您收到的新代码的访问令牌调用。 确保存储访问令牌,因为代码不能再使用。



文章来源: Unable to receive a permanent access token for my Shopify App