2017-06-20 62 views
0

我一直試圖使用官方shopify_app gem爲我的Shopify應用程序添加webhook。如何在shopify_app gem中使用webhooks?

所以我運行rails g shopify_app:add_webhook -t products/update -a https://example.com/webhooks/products_update,看到每個文件都按照預期生成,並且在測試存儲中安裝我的應用程序後檢查日誌也顯示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太(你可能會說^^)

謝謝,喬治

回答

1

你的產品更新作業文件名應該是這樣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 

試試這個變化,你會得到它。

0

你有沒有安裝網絡掛接後,重新啓動您的軌道服務器。 請重新啓動您的Rails服務器,同時卸載並重新安裝Shopify商店中的應用程序,然後單擊安裝按鈕,檢查您的相應WebHook是否在安裝頁面中可用。

+0

我已經嘗試重新啓動服務器並重新安裝Shopify商店中的應用程序多次,不幸的是,這並沒有幫助..你是什麼意思與「檢查你的相應webhook是否可用在那裏或沒有在安裝頁面」?在點擊安裝之前,我只能看到我的應用程序請求了哪些權限,沒有任何關於任何webhook的信息...... – Georg