【问题标题】:How to GET resources from Shopify API admin Endpoint using Rails如何使用 Rails 从 Shopify API 管理端点获取资源
【发布时间】:2017-05-21 07:09:40
【问题描述】:

我正在开发一个私人 Shopify 应用程序。我正在尝试获取此资源(来自 Shopify 端点):

https://store.myshopify.com/admin/products.json

以这种方式使用Net::HTTP库:

url = 'https://'+@api_key+':'+@password+'@storename.myshopify.com/admin/products.json' 
uri = URI(url)  
response = Net::HTTP.get(uri) 
p = JSON.parse(response)

但我得到的是:

=> {"errors"=>"[API] API 密钥或访问令牌无效(无法识别的登录名或密码错误)"}

从 Shopify 管理端点获取资源的正确方法是什么?

【问题讨论】:

  • 也许我应该使用其他身份验证方法?
  • 尝试使用base64编码的header传递api密钥和api pass
  • @HymnZ,感谢您的回复!事实上,据我了解,我上面使用的方法(通过基本的 HTTP 授权)不再受支持。有许多插件/宝石允许使用 API 进行授权,例如:shopify_app gemomniauth-shopify-oauth2Postman JWT 等等。我只是迷失在这片变种的海洋中。我也找不到任何关于如何正确使用它们的文章。你能推荐一些使用的工具吗?或者发布一些链接来解释如何使用 base64 编码的标头对管理端点执行 API 调用?

标签: ruby-on-rails json shopify


【解决方案1】:

好的,所以我找到了解决问题的方法。 对于不知道如何访问需要身份验证的Admin Shopify API endpoints(例如:/admin/products.json?collection_id=841564295)的人,您可以使用'Postman' Chrome App。

Here是使用教程。

最重要的是 Postman(从其 UI)为您生成多种语言(包括 Ruby)的代码。 所以这就是你使用它的方式。只需将此代码复制粘贴到您的 Rails 应用程序中,不要忘记添加 require 'OpenSSL' 因为邮递员在生成的代码中不包含此行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2016-12-23
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多