[ベータ版]{class="badge informative"}
Shopify Streaming
Adobe Experience Platformでは、ストリーミングアプリケーションからデータを取り込む機能をサポートしています。 ストリーミングプロバイダーのサポートにはShopifyが含まれます。
前提条件 prerequisites
次の節では、Shopify Streaming ソースを使用する前に完了するための前提条件の手順の概要を説明します。
Shopify APIに接続するには、有効なShopify パートナーアカウントが必要です。 パートナーアカウントを既にお持ちでない場合は、Shopify パートナーダッシュボード を使用して登録してください。
アプリケーションの作成
有効なShopify パートナーアカウントを使用すると、パートナーダッシュボードを使用してアプリを続行および作成できるようになりました。 Shopifyでのアプリの作成方法に関する包括的な手順については、Shopify 入門ガイド を参照してください。
アプリを作成したら、Shopify パートナーダッシュボードのクライアント資格情報 タブから クライアント ID と クライアント シークレット を取得します。 次の手順では、クライアント 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}
shopmyshopify.comのURL。api_keyscopesscope=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、クライアント秘密鍵、認証コードが用意できたので、アクセストークンを取得できます。 アクセストークンを取得するには、Shopify’s API エンドポイント /admin/oauth/access_tokenでこのURLを追加しながら、ドメインのmyshopify.com URLにPOST リクエストを行います。
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"
}
Shopify データをストリーミングするためのWebhookの作成 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/114ae3c01f3ac77c704465f83d7d79be150fc39a5a794a214cd4ab65a5901340?x-adobe-flow-id=d9eb4a58-6a6b-4f11-9dba-6d1e0ed43bad",
"topic": "orders/create",
"format": "json"
}
}'
webhook.addresshttps://dcs.adobedc.net/collection/{INLET_ID}?x-adobe-flow-id={FLOW_ID}.webhook.topicwebhook.format応答
応答が成功すると、対応するid、アドレス、その他のメタデータ情報を含むWebhookに関する情報が返されます。
{
"webhook": {
"id": 1091138715786,
"address": "https://dcs.adobedc.net/collection/114ae3c01f3ac77c704465f83d7d79be150fc39a5a794a214cd4ab65a5901340?x-adobe-flow-id=d9eb4a58-6a6b-4f11-9dba-6d1e0ed43bad",
"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
次に、Shopify Streaming ソースでWebhookを使用する際に発生する可能性がある既知の制限事項を示します。
- 同じリソースに対して異なるトピックを配信する順序を決めることができるとは限りません。 例えば、
products/createWebhookの前にproducts/updateWebhookが配信される可能性があります。 - Webhookを設定して、少なくとも1回はエンドポイントにWebhook イベントを配信できます。 つまり、エンドポイントが同じイベントを複数回受信する可能性があります。
X-Shopify-Webhook-Idヘッダーと以前のイベントを比較して、重複したWebhook イベントをスキャンできます。 - Shopifyは、HTTP 2xx ステータスの応答を成功した通知として扱います。 その他のステータスコードの応答は、失敗とみなされます。 Shopifyは、失敗したWebhook通知の再試行メカニズムを提供します。 5秒待ってから応答がない場合Shopifyは、次の 48時間の間に 19回 接続を再試行します。 再試行期間が終了しても応答がない場合、ShopifyはWebhookを削除します。
次の手順
次のチュートリアルでは、APIとUIを使用してShopify Streaming ソースをExperience Platformに接続する手順について説明します。