使用 webhooks shopify-api

Consuming webhooks shopify-api

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

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

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

从 Shopify 接收更改(尤其是 Order Creation 事件),您不需要使用任何 gem 或第三方来集成!

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

1.在您的应用中提供 api 以接收 webhook 事件

这是一个例子:

您的路线:

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

您的控制器:

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

2。配置从您的 Shopify Settings. 调用 webhook 配置的 url 将是:

http://your_production_url/shopify/create_order

如果您想从本地主机进行测试,请转至 step 3

3。 (可选)从您的本地主机测试

下载此免费工具:ngrok 并将其解压到您的机器上。 运行 在您的终端中使用 ngrok 通过此命令生成转发 url 到您的本地主机:

ngrok http 3000

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

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

4. (可选但重要)在您的应用程序中设置隐私,以确保只有 Shopify 可以呼叫您的 api。关注这个documentation

Shopify 还提供 api 与 Shopify 资源集成:create/update productcollectioncollectmetafield、.. .你可以直接使用它。 Shopify API documentation. But the easiest way to work with Shopify is shopify_api gem 中描述了所有内容,它提供了一个与 Shopify 一起工作的界面(通过 ActiceResource

可能阅读 documentation on Webhooks 会帮助您了解很多您需要做的事情

本质上,这里概述了开始使用 Web 挂钩所需的条件:

1.创建您的网络挂钩

需要注意的参数:

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

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

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