消费webhooks shopify-api

时间:2016-02-03 12:30:22

标签: ruby-on-rails ruby api shopify webhooks

我正在构建我的第一个RoR webapp,我正在尝试与Shopify建立集成。每当在Shopify中创建一个订单时,我想在我的Web应用程序中创建一个订单。为此,我想使用Shopify webhook。第二步是设置它,以便在处理完订单后我将使用Shopify API更新一些记录。目前我主要担心的是接收webhooks。我一直在寻找Shopify宝石的文档,但凭借我有限的RoR技能,我似乎无法弄明白。我一直在网上搜索几个小时,但找不到任何明确的例子/解释。

我对这个宝石感到困惑; shopify-api(https://docs.shopify.com/api/authentication/using-api-gem-with-private-app-credentials)。我在shopify中创建了一个私有应用程序,但之后我就输了。我应该在哪里放置这个代码,如何在收到webhook后调用它?

在我看来,这个gem主要用于访问Shopify API而不是使用webhooks。我错了吗?

2 个答案:

答案 0 :(得分:2)

要从Shopify接收更改(尤其是ErrorCode=UserErrorAdlsUnauthorizedAccess事件),您不需要使用任何宝石或第三方进行整合!

以下是我之前在我的应用中执行的步骤:

<强> 1。在您的应用中提供api以接收webhook活动

以下是一个例子:

您的路线:

Order Creation

你的控制器:

post '/shopify/create_order', to: 'shopify#create_order'

<强> 2。配置从您的Shopify Settings调用webhook。配置的网址将为:

class ShopifyController < ApplicationController
  def create_order
    # process shopify order here: all info in `params`
  end
end

如果您想从localhost进行测试,请转到http://your_production_url/shopify/create_order

第3。 (可选)从您的localhost进行测试

下载此免费工具:ngrok并将其解压缩到您的计算机上。 在终端中运行ngrok,通过以下命令为您的localhost生成转发URL:

step 3

所以你将从控制台得到这样的输出:

enter image description here

复制上面生成的网址(例如http://fbc5cf88.ngrok.io)并在步骤2中添加到Shopify设置

<强> 4。 (可选但很关键)在您的应用中设置隐私,以确保只有Shopify可以拨打您的API。请遵循此documentation

Shopify还提供api以与Shopify资源集成:创建/更新ngrok http 3000 productcollectioncollect,...您可以直接使用它。所有内容都在Shopify API documentation进行了描述。但使用Shopify的最简单方法是shopify_api gem,它提供了与Shopify一起使用的界面(通过metafield

答案 1 :(得分:0)

大概阅读documentation on Webhooks可以帮助你弄清楚你需要做的很多事情

从本质上讲,这里是您开始使用Web挂钩所需内容的概述:

1。创建您的Web挂钩

你需要注意的参数:

  • 主题:您想要的挂钩类型(例如orders/create
  • address:您将使用钩子的端点的URL(例如:https://myapp.domain.com/hooks/order_create

2。创建将响应挂钩的端点

注意:您还需要实施一种方法来验证通过端点收到的请求来自Shopify,detailed here.