1

我正在尝试通过 API 创建一个 Webhook。当客户安装应用程序(控制器)时:

def init_webhooks
  topics = ["products/create", "products/update", "products/delete"]
  topics.each do |topic|
    webhook = ShopifyAPI::Webhook.create(format: "json", topic: topic, address: "http://#{@current_host}/webhooks/#{topic}")
    raise "Webhook invalid: (#{topic}) #{webhook.errors}" unless webhook.valid?
  end
end

这是日志中的错误:

RuntimeError (Webhook invalid: (products/create) #<ActiveResource::Errors:0x00000003bd7358>):

编辑: 我什至尝试过创建一个没有块代码的 webhook,如下所示:

webhook = ShopifyAPI::Webhook.create topic: "products/create", address: "http://myapp.com/webhooks/products/create", format: "json"

但我得到同样的东西。

从我的路线文件:

  match 'webhooks/products/create' => 'webhook#product_new'
  match 'webhooks/products/update' => 'webhook#product_updated'
  match 'webhooks/products/delete' => 'webhook#product_deleted'

我知道授权和商店实际上安装正确,因为如果我注释掉“Raise”错误行,然后我会进入索引页面,该页面显示我在 Shopify Admin 中创建的一些测试订单和测试产品。

我不知道从这里去哪里。谢谢b

4

1 回答 1

3

您使用的参数 ( topic, format, address) 对我来说看起来不错,但不应该ShopifyAPI::Webhook.new代替create吗?

您现在是否有一个可以轻松测试您的 ruby​​ 代码的shopify 控制台?

于 2013-05-08T13:28:52.383 回答