【问题标题】:Consuming webhooks shopify-api使用 webhook shopify-api
【发布时间】:2016-05-12 15:46:45
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    为了接收来自 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
    

    如果你想从 localhost 进行测试,请转到 step 3

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

    下载这个免费工具:ngrok 并将其解压到您的机器上。 在您的终端中运行 ngrok 以通过以下命令生成到您的 localhost 的转发 url:

    ngrok http 3000
    

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

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

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

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

    【讨论】:

    • 非常感谢伙计。这为我清除了一切。我发现这段代码可用于验证 webhook:github.com/csaunders/shopProductSink/blob/… 如果我为此代码创建模型,如何在我的订单控制器中使用/包含它?我目前正在我的暂存环境中接收 webhook,并且订单已成功创建,但它们未经过身份验证,因此任何人都可以创建订单。
    • 干杯,我刚刚获得了身份验证。谢谢指点!
    【解决方案2】:

    阅读documentation on Webhooks 可能会帮助你弄清楚你需要做什么

    本质上,以下是开始使用网络挂钩所需的概述:

    1.创建您的网络挂钩

    需要注意的参数:

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

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

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

    【讨论】:

    • 谢谢伙计,绝对有帮助
    • 干杯,我刚刚获得了身份验证。谢谢指点!
    猜你喜欢
    • 1970-01-01
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    相关资源
    最近更新 更多