我已经为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),但找不到解决方案。
1条答案
按热度按时间3j86kqsm1#
与普通的webhook不同,您可以通过API调用来按主题创建webhook,然后提供一个端点,您可以在其中对其进行身份验证和处理,对于GDPR调用,您可以在应用程序设置屏幕中提供端点。然后Shopify负责发布数据。因此,这里唯一真实的的区别是,您不使用API调用创建webhook。您只需提供端点。
因此,如果你可以处理你创建的webhook,这是一样的。只需编写您在管理中为应用程序设置的路由,并将其作为商店中的任何其他webhook进行处理。