[ベータ版]{class="badge informative"}

Shopify Streaming

NOTE
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}
パラメーター
説明
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、クライアント秘密鍵、認証コードが用意できたので、アクセストークンを取得できます。 アクセストークンを取得するには、API エンドポイント /admin/oauth/access_token を使用してこの URL を追加する際に、ドメインの myshopify.com URLShopify’sPOSTリクエストを行います。

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/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

Shopify Streaming ソースで Webhook を使用する際に発生する可能性のある既知の制限事項を以下に示します。

  • 同じリソースに対して異なるトピックの配信順を並べ替えることができるとは限りません。 例えば、products/create Webhook より前に products/update Webhook が配信される可能性があります。
  • Webhook イベントを少なくとも 1 回はエンドポイントに配信するように Webhook を設定できます。 つまり、1 つのエンドポイントが同じイベントを複数回受け取る可能性があります。 X-Shopify-Webhook-Id ヘッダーを以前のイベントと比較することで、重複する Webhook イベントをスキャンできます。
  • Shopify は、HTTP 2xx ステータス応答を成功した通知として扱います。 その他のステータスコード応答は、失敗と見なされます。 Shopify は、失敗した webhook 通知の再試行メカニズムを提供します。 5 秒待っても応答がない 場合は、Shopify は次の 48 時間 の間、接続を 19 回 再試行します。 再試行期間の終わりまでに応答がまだない場合、Shopify は Webhook を削除します。

次の手順

次のチュートリアルでは、API と UI を使用して Shopify Streaming ソースをExperience Platformに接続する方法の手順を説明します。

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