在过去的几个小时里,我一直在尝试使用官方shopify_app gem为我的Shopify应用添加webhook。
所以我运行rails g shopify_app:add_webhook -t products/update -a https://example.com/webhooks/products_update
并看到每个文件都按预期生成并在Test Store中安装我的应用程序后检查日志,这也向我显示webhook已成功启动。
但是,在实际更新商店中的产品后,我收到错误消息:
ShopifyApp::MissingWebhookJobError (ShopifyApp::MissingWebhookJobError):
shopify_app (7.2.9) app/controllers/shopify_app/webhooks_controller.rb:21:in `webhook_job_klass'
shopify_app (7.2.9) app/controllers/shopify_app/webhooks_controller.rb:10:in `receive'
actionpack (5.0.3) lib/action_controller/metal/basic_implicit_render.rb:4:in `send_action'
...继续大约40行并在大约10-30秒后重复自己,然而,在投掷之前向我展示了参数。我还没有改变products_job.rb
,所以它仍然看起来像这样:(虽然我试图多次改变它)
class ProductsJob < ActiveJob::Base
def perform(shop_domain:, webhook:)
shop = Shop.find_by(shopify_domain: shop_domain)
shop.with_shopify_session do
end
end
end
我真的很高兴收到任何意见,因为我对Shopify应用程序和Rails也是新手(你可能会告诉^^)
谢谢,Georg
答案 0 :(得分:2)
您的产品更新作业文件名应该与products_update_job.rb类似,而不是products_job.rb,内容应如下所示:
class ProductsUpdateJob < ActiveJob::Base
def perform(shop_domain:, webhook:)
shop = Shop.find_by(shopify_domain: shop_domain)
shop.with_shopify_session do
end
end
end
尝试这些更改,你会得到它。
答案 1 :(得分:0)
安装webhook后,您是否重新启动了rails服务器? 重新启动rails服务器还要在shopify商店中卸载并重新安装您的应用程序,然后在单击安装按钮之前检查相应的webhook是否可用于安装页面。