Brad Madigan
Brad Madigan

Reputation: 299

Error Creating Shopify Webhook through the API

I am trying to create a Webhook through the API. When the Customer installs the app (Controller):

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

Here is the error from the log:

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

EDIT: I have even tried just creating one webhook without the block code like so:

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

But I get the same thing.

From my Routes file:

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

I know that the authorization and shop is in fact installing correctly because if I Comment out the 'Raise' error line, I then proceed to the index page which displays some test orders and test products that I created within the Shopify Admin.

I'm not sure where to go from here. Thanks b

Upvotes: 1

Views: 1533

Answers (1)

hjblok
hjblok

Reputation: 2966

The params you use (topic,format,address) look good to me, but shouldn't it be ShopifyAPI::Webhook.new instead of create?

Did you now there is a shopify console where you can easily test your ruby code?

Upvotes: 3

Related Questions