Beta 版

Shopify Streaming

NOTE
此 Shopify Streaming 源为测试版。 请阅读 源概述 有关使用测试版标记源代码的更多信息。

Adobe Experience Platform支持从流应用程序中摄取数据。 对流式提供商的支持包括 Shopify.

先决条件 prerequisites

以下部分概述了在使用之前要完成的先决步骤 Shopify Streaming 源。

您必须拥有有效的 Shopify 合作伙伴帐户,以连接到 Shopify API。 如果您还没有合作伙伴帐户,请使用 Shopify 合作伙伴信息板.

创建应用程序

使用有效的 Shopify 合作伙伴帐户后,您现在可以使用合作伙伴功能板继续创建应用程序。 有关如何在中创建应用程序的完整步骤 Shopify,阅读 Shopify 入门指南.

创建应用程序后,检索您的 客户端ID客户端密码客户端凭据 选项卡 Shopify 合作伙伴信息板。 客户端ID和客户端密钥将在后续步骤中使用,以检索您的授权代码和访问令牌。

检索授权码

接下来,通过输入域的 myshopify.com 浏览器URL,以及定义API密钥、范围和重定向URI的查询字符串。

此URL的格式如下:

API格式

https://{SHOP}.myshopify.com/admin/oauth/authorize?client_id={API_KEY}&scope={SCOPES}&redirect_uri={REDIRECT_URI}
参数
描述
shop
您的子域 myshopify.com URL。
api_key
您的 Shopify 客户端ID。 您可以从以下位置检索您的客户端ID: 客户端凭据 选项卡 Shopify 合作伙伴信息板。
scopes
要定义的访问权限类型。 例如,可以将范围设置为 scope=write_orders,read_customers 以允许您修改订单和读取客户。
redirect_uri
将生成访问令牌的脚本的URL。

请求

https://connnectors-test.myshopify.com/admin/oauth/authorize?client_id=l6fiviermmzpram5i1spfub99shms3j9&scope=write_orders,read_customers&redirect_uri=https://acme.com

响应

成功的响应将返回您的重定向URL,包括生成访问令牌所需的授权代码。

https://www.acme.com/?code=k6j2palgrbljja228ou8c20fmn7w41gz&hmac=68c9163f772eecbc8848c90f695bca0460899c125af897a6d2b0ebbd59d3a43b&shop=connnectors-test.myshopify.com&state=123456×tamp=1658305460

检索您的访问令牌

现在,您已拥有客户端ID、客户端密钥和授权码,您可以检索访问令牌了。 POST要检索您的访问令牌,请向域的 myshopify.com 将此URL附加到时的URL Shopify’s API端点: /admin/oauth/access_token.

API格式

POST /{SHOP}.myshopify.com/admin/oauth/access_token

请求

以下请求为您的生成访问令牌 Shopify 实例。

curl -X POST \
  'https://connnectors-test.myshopify.com/admin/oauth/access_token' \
  -H 'developer-token: {DEVELOPER_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'Cookie: _master_udr=xxx; request_method=POST'
  -d '{
    "client_id": "l6fiviermmzpram5i1spfub99shms3j9",
    "client_secret": "dajn3caxz9s7ti624ncyv_m4f60jnwi3ii3y3k",
    "code": "k6j2palgrbljja228ou8c20fmn7w41gz"
}'

响应

成功的响应将返回您的访问令牌和权限范围。

{
  "access_token": "shpca_wjhifwfc91psjtldysxd6rqli371tx54",
  "scope": "write_orders,read_customers"
}

创建用于流的webhook Shopify 数据 webhook

Webhook允许应用程序与您的 Shopify 在车间中发生特定事件后数据或执行操作。 适用于流 Shopify 要Experience Platform的数据,webhook可用于定义http端点和订阅主题。

请求

以下请求为创建webhook Shopify Streaming 数据。

curl -X POST \
  'https://connnectors-test.myshopify.com/admin/api/2022-07/webhooks.json' \
  -H 'X-Shopify-Access-Token: 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' \
  -H 'Content-Type: application/json' \; request_method=POST' \
  -d '{
  "webhook": {
    "address": "https://dcs.adobedc.net/collection/9d411a24aa3c0a3eded92bac6c64d0da986ee7a8212f87168c5fb42d9ddc3227",
    "topic": "orders/create",
    "format": "json"
  }
}'
参数
描述
webhook.address
发送流消息的http端点。
webhook.topic
webhook订阅的主题。 欲知更多信息,请参阅 Shopify webhook事件主题指南.
webhook.format
数据的格式。

响应

成功的响应将返回有关webhook的信息,包括其对应的信息 id、地址和其他元数据信息。

{
  "webhook": {
    "id": 1091138715786,
    "address": "https://dcs.adobedc.net/collection/9d411a24aa3c0a3eded92bac6c64d0da986ee7a8212f87168c5fb42d9ddc3227",
    "topic": "orders/create",
    "created_at": "2022-07-20T07:15:23-04:00",
    "updated_at": "2022-07-20T07:15:23-04:00",
    "format": "json",
    "fields": [],
    "metafield_namespaces": [],
    "api_version": "2021-10",
    "private_metafield_namespaces": []
  }
}

限制 limitations

以下列表列出了在使用webhook与结合使用时可能会遇到的已知限制 Shopify Streaming 源。

  • 我们并不保证您可以为同一资源安排不同主题的交付顺序。 例如,可能有 products/update webhook在 products/create webhook。
  • 您可以设置webhook以至少向端点投放webhook事件一次。 这意味着端点可能会多次接收同一事件。 您可以通过比较 X-Shopify-Webhook-Id 标头到以前的事件。
  • Shopify 将HTTP 2xx状态响应视为成功通知。 任何其他状态代码响应均被视为失败。 Shopify 为失败的webhook通知提供重试机制。 如果有 等待5秒后无响应, Shopify 重试连接 19次 在接下来的过程中 48小时. 如果在重试期间结束时仍然没有响应,则 Shopify 删除webhook。

后续步骤

以下教程提供了有关如何连接 Shopify Streaming 要使用API和UIExperience Platform的源:

recommendation-more-help
337b99bb-92fb-42ae-b6b7-c7042161d089