[Beta]{class="badge informative"}
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
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、使用者端密碼和授權碼,您可以擷取存取權杖。 POST若要擷取您的存取Token,請對您網域的 myshopify.com
在此URL後面附加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
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
標頭至先前的事件中。 - Shopify 會將HTTP 2xx狀態回應視為成功通知。 任何其他狀態代碼回應均視為失敗。 Shopify 為失敗的webhook通知提供重試機制。 如果有 等候5秒後沒有回應, Shopify 重試連線 19次 在接下來的過程中 48小時. 如果在重試期間結束時仍然沒有回應,則 Shopify 刪除webhook。
後續步驟
下列教學課程提供如何連線您的 Shopify Streaming 使用API和UIExperience Platform的來源: