在rails中扩展shopify_api gem以检索仅适用于Shopify Plus用户的资源

时间:2017-02-24 19:37:49

标签: ruby-on-rails-4 shopify activeresource

在Shopify API文档中,资源"用户"为支付Shopify Plus帐户的用户提供。见下文: https://help.shopify.com/api/reference/user#current 说到Shopify的支持,因为Shopify Plus用户是少数,shopify_api gem不支持这些调用,所以我必须自己构建它们。我已经尝试通过扩展当前的ShopifyAPI模块和类似这样做:

module ShopifyAPI
  class User < Base
    def self.current(options={})
      find(:one, options.merge({from: "/admin/users/current.json"}))
    end
  end
end

然后我调用新方法如下:

@user = ShopifyAPI::User.current

我得到一个&#34; Not Found&#34;错误。如果我检查ActiveResource的日志以查看它正在尝试的调用,奇怪的是我得到以下内容,看起来是正确的:

I, [2017-02-24T13:14:19.278087 #4890]  INFO -- : GET https://mazer-3.myshopify.com:443/admin/users/current.json
I, [2017-02-24T13:14:19.278356 #4890]  INFO -- : --> 404 Not Found 22 (279.5ms)
I, [2017-02-24T13:14:19.279605 #4890]  INFO -- : Headers: {"Accept"=>"application/json", "User-Agent"=>"ShopifyAPI/4.3.5 ActiveResource/4.1.0 Ruby/2.3.1", "X-Shopify-Access-Token"=>"SOME_CHARACTERS_HERE_I_AM_NOT_SHOWING_TO_THE_PUBLIC"}
I, [2017-02-24T13:14:19.279680 #4890]  INFO -- : Response:
{"errors":"Not Found"}

如果我复制了它在第一行https://mazer-3.myshopify.com:443/admin/users/current.json生成的URL,并在登录Shopify时将其粘贴到我的浏览器中,奇怪的是它确实为我提供了当前用户,以及200个成功的响应代码。 / p>

配置ActiveResource时是否缺少某些内容?

1 个答案:

答案 0 :(得分:0)

您没有激活API端点供您使用,因为Shop不是Plus商店...如果Shopify未授权这些电话,您无法进行自己的端点呼叫并期望它们正常工作。在内部,他们打开Plus范围......就像用户一样。

所以你可以认为这是一个很好的尝试,但你不能伪造Shopify。