[Beta]{class="badge informative"}
Shopify Streaming
Adobe Experience Platform支援從串流應用程式擷取資料。 對串流提供者的支援包括Shopify。
先決條件 prerequisites
以下章節概述使用Shopify Streaming來源之前要完成的先決條件步驟。
您必須擁有有效的Shopify合作夥伴帳戶才能連線至Shopify API。 如果您還沒有合作夥伴帳戶,請使用Shopify 合作夥伴儀表板進行註冊。
建立您的應用程式
使用有效的Shopify合作夥伴帳戶,您現在可以使用合作夥伴儀表板繼續並建立您的應用程式。 如需有關如何在Shopify中建立應用程式的完整步驟,請閱讀快速入門的Shopify 指南。
建立您的應用程式後,請從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
scopes
scope=write_orders,read_customers
,以允許修改訂單和讀取客戶的許可權。redirect_uri
要求
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、使用者端密碼和授權碼,您可以擷取存取權杖。 若要擷取您的存取Token,請在使用Shopify’s API端點附加此URL時向網域的myshopify.com
URL提出POST要求: /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端點和訂閱的主題。
要求
以下請求會為您的Shopify Streaming資料建立webhook。
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
webhook.topic
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
標頭與先前的事件做比較,以掃描重複的webhook事件。 - Shopify會將HTTP 2xx狀態回應視為成功通知。 任何其他狀態代碼回應均視為失敗。 Shopify為失敗的webhook通知提供重試機制。 如果等候5秒後 沒有回應,Shopify會在接下來的 48小時 內重試連線 19次。 如果重試期間結束時仍然沒有回應,則Shopify會刪除webhook。
後續步驟
下列教學課程提供如何使用API和UI將您的Shopify Streaming來源連線到Experience Platform的步驟: