我想在Shopify中创建订单时执行一项工作,但好像什么都没有收听webhook,我无法弄清楚原因。我按照shopify_app gem的文档进行操作,但它无法正常工作。
我跑了
rails g shopify_app:add_webhook -t orders/create -a https://example.com/webhooks/orders_create
初始化程序shopify_app.rb
ShopifyApp.configure do |config|
...
config.webhooks = [
{topic: 'orders/create', address: 'https://myappwebaddress_not_showing_on_stackoverflow/webhooks/orders_create', format: 'json'},
]
...
end
我正在使用WebhooksController
module ShopifyApp
class WebhooksController < ApplicationController
include ShopifyApp::WebhookVerification
class ShopifyApp::MissingWebhookJobError < StandardError; end
def receive
params.try(:permit!)
job_args = {shop_domain: shop_domain, webhook: webhook_params.to_h}
webhook_job_klass.perform_later(job_args)
head :no_content
end
private
def webhook_params
params.except(:controller, :action, :type)
end
def webhook_job_klass
"#{webhook_type.classify}Job".safe_constantize or raise ShopifyApp::MissingWebhookJobError
end
def webhook_type
params[:type]
end
end
end
我知道webhook已创建,因为我在应用视图中显示它并显示。
[#<ShopifyAPI::Webhook:0x007f183012d578 @attributes={"id"=>462377288, "address"=>"https://myappwebaddress_not_showing_on_stackoverflow/webhooks/orders_create", "topic"=>"orders/create", "created_at"=>"2016-11-29T20:29:24-08:00", "updated_at"=>"2016-11-29T20:29:24-08:00", "format"=>"json", "fields"=>[], "metafield_namespaces"=>[]}, @prefix_options={}, @persisted=true>]
当我通过Shopify创建订单时,我的应用中没有任何反应。
我应该补充一下,我正在使用sidekiq来处理这项工作。 Sidekiq正在工作,因为当我&#34;安装&#34; Shopify中的应用程序,它处理创建webhook的工作。
处理webhook时我缺少什么?我还需要在routes.rb中创建一些东西吗?文档中没有任何内容说我需要。我尝试创建路线post 'webhooks/orders_create' => 'webhooks#receive'
但是,那没有做任何事情。
我需要做什么?
答案 0 :(得分:1)
问题是webhook无法访问端点,因为开发服务器托管在cloud9上,只能通过我的浏览器访问。