如何在node.js中设置Shopify GDPR webhooks

jhiyze9q  于 2023-08-04  发布在  Node.js
关注(0)|答案(1)|浏览(135)

我已经为Shopify开发了一个应用程序,现在我正在尝试设置GDPR webhooks。
如何访问GDPR webhooks路由并对其进行测试?我需要为此创建一个特定的路由,还是只使用shopify提供的功能?
Shopify提供了一个gdpr.js文件,其中包含一些预配置片段,我们必须为所有这些片段返回状态200,我曾试图通过Postman和Shopify内部访问这些路由,请求客户数据,但没有成功。
代码:

import { DeliveryMethod } from "@shopify/shopify-api";

/**
 * @type {{[key: string]: import("@shopify/shopify-api").WebhookHandler}}
 */
export default {
  /**
   * Customers can request their data from a store owner. When this happens,
   * Shopify invokes this webhook.
   *
   * https://shopify.dev/docs/apps/webhooks/configuration/mandatory-webhooks#customers-data_request
   */
  CUSTOMERS_DATA_REQUEST: {
    deliveryMethod: DeliveryMethod.Http,
    callbackUrl: "/api/webhooks",
    callback: async (topic, shop, body, webhookId) => {
      const payload = JSON.parse(body);
      // Payload has the following shape:
      // {
      //   "shop_id": 954889,
      //   "shop_domain": "{shop}.myshopify.com",
      //   "orders_requested": [
      //     299938,
      //     280263,
      //     220458
      //   ],
      //   "customer": {
      //     "id": 191167,
      //     "email": "john@example.com",
      //     "phone": "555-625-1199"
      //   },
      //   "data_request": {
      //     "id": 9999
      //   }
      // }
    },
  },

字符串
index.js在这里调用了以下代码:

app.post(
  shopify.config.webhooks.path,
  shopify.processWebhooks({ webhookHandlers: GDPRWebhookHandlers })
);


我在网上找到了一些教程,但似乎项目已经更新了,它们不再工作了。
我也看了shopify的文档(https://shopify.dev/docs/apps/webhooks/configuration/mandatory-webhooks),但找不到解决方案。

3j86kqsm

3j86kqsm1#

与普通的webhook不同,您可以通过API调用来按主题创建webhook,然后提供一个端点,您可以在其中对其进行身份验证和处理,对于GDPR调用,您可以在应用程序设置屏幕中提供端点。然后Shopify负责发布数据。因此,这里唯一真实的的区别是,您不使用API调用创建webhook。您只需提供端点。
因此,如果你可以处理你创建的webhook,这是一样的。只需编写您在管理中为应用程序设置的路由,并将其作为商店中的任何其他webhook进行处理。

相关问题