使用 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 product
、collection
、collect
、metafield
、.. .你可以直接使用它。 Shopify API documentation. But the easiest way to work with Shopify is shopify_api gem 中描述了所有内容,它提供了一个与 Shopify 一起工作的界面(通过 ActiceResource
)
可能阅读 documentation on Webhooks 会帮助您了解很多您需要做的事情
本质上,这里概述了开始使用 Web 挂钩所需的条件:
1.创建您的网络挂钩
- 您可以使用 Shopify API (
POST /admin/webhooks.json
)
- 或者您可以通过 store admin
需要注意的参数:
- 主题:您想要的挂钩类型(例如
orders/create
)
- 地址:您将使用挂钩的端点的 URL(例如:
https://myapp.domain.com/hooks/order_create
)
2。创建将响应钩子的端点
- 然后您需要设置您的 ROR 应用程序以公开将响应 POST 请求的端点。
- 此端点与您之前在创建挂钩时指定的端点相同URL
更多信息请见 https://docs.shopify.com/api/webhooks/using-webhooks#respond-to-webhook
注意:您还需要实施一种方法来验证您通过端点收到的请求是否来自 Shopify,detailed here.
我正在构建我的第一个 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 product
、collection
、collect
、metafield
、.. .你可以直接使用它。 Shopify API documentation. But the easiest way to work with Shopify is shopify_api gem 中描述了所有内容,它提供了一个与 Shopify 一起工作的界面(通过 ActiceResource
)
可能阅读 documentation on Webhooks 会帮助您了解很多您需要做的事情
本质上,这里概述了开始使用 Web 挂钩所需的条件:
1.创建您的网络挂钩
- 您可以使用 Shopify API (
POST /admin/webhooks.json
) - 或者您可以通过 store admin
需要注意的参数:
- 主题:您想要的挂钩类型(例如
orders/create
) - 地址:您将使用挂钩的端点的 URL(例如:
https://myapp.domain.com/hooks/order_create
)
2。创建将响应钩子的端点
- 然后您需要设置您的 ROR 应用程序以公开将响应 POST 请求的端点。
- 此端点与您之前在创建挂钩时指定的端点相同URL 更多信息请见 https://docs.shopify.com/api/webhooks/using-webhooks#respond-to-webhook
注意:您还需要实施一种方法来验证您通过端点收到的请求是否来自 Shopify,detailed here.