3

我正在尝试在 Rails 中使用 order/create 设置一个基本的 shopify webhook 应用程序。

我已按照 webhook 支持 api 中的说明进行操作,并部署了那里提供的 Sync_App_Demo 示例,但无法在授权步骤中授权登录。它会打开“我们很抱歉出了点问题”页面 - myapp/login/authenticate

我是 webhook 的新手,并且已经浏览过 SO 和谷歌搜索,但没有为 webhook 连接制定基本设置感到高兴。我根据创建的 shopify_app gem 设置将 shopify 应用程序 api 密钥和秘密放置在其中,但不确定这是否正确。

此外,一旦我通过一个 webhook 控制器连接到 abouts 指向的位置(例如,我的测试商店的订单通知面板中的什么 url /order.xml),webhook 订单/创建?

任何帮助将非常感激。

这是 shopify 同步应用演示的链接:

https://github.com/Shopify/sync_app_demo

http://wiki.shopify.com/WebHook#Rails

4

2 回答 2

7

在自己搜索如何执行此操作时偶然发现了您的问题。鉴于您在此处发布此内容已经有好几年了,希望您已经找到了答案。如果你还没有,这就是我们所做的:

在这两种情况下,您都必须知道您的 Shopify API 密钥、密码和商店名称。

1) 使用 Shopify 的shopify_apigem:

new_webhook = ShopifyAPI::Webhook.new({
   topic: "orders/create",
   address: "http://www.example.com/webhook", # substitute url with your endpoint
   format: "json"
})

new_webhook.save

2)使用终端:

curl -X POST -H 'Content-Type: application/json' 'https://shopify_api_key:shopify_api_password@store_name.myshopify.com/admin/webhooks.json' -d '{"webhooks": {"topic": "orders\/create", "address": "http:\/\/www.example.com\/webhook", "format": "json"}}' 

因此,您需要添加自己的shopify_api_keyshopify_api_passwordstore_name和地址端点,以便接收已发布的事件。

其他有用的东西:

Ultrahook - 用于在本地运行的服务器上接收 webhook(例如,使用时rails s

RequestBin - 用于查看 webhook 响应的原始正文和标头

于 2016-03-25T21:46:09.070 回答
0

对于刚开始使用 Ruby on Rails 开发 Shopify 应用程序的新人,我强烈建议使用包含shopify_api gem 的shopify_app gem。

要注册 webhook,您可以运行生成器或在初始化程序add_webhook中手动添加一行:shopify_app.rb

config.webhooks = [
  {topic: 'app/uninstalled', address: 'https://myapp.url/webhooks/app_uninstalled', format: 'json'},
  {topic: 'orders/create', address: 'https://myapp.url/webhooks/orders_create', format: 'json'},
]

通过此设置,您的应用程序将在应用程序安装时注册 webhook。

于 2016-04-24T07:37:59.920 回答