[ベータ版]{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、クライアント秘密鍵、認証コードが用意できたので、アクセストークンを取得できます。 アクセストークンを取得するには、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.address
ストリーミングメッセージが送信されるhttp エンドポイント。 Webhookのテンプレートは次のとおりです:https://dcs.adobedc.net/collection/{INLET_ID}?x-adobe-flow-id={FLOW_ID}.
webhook.topic
Webhook サブスクリプションのトピック。 詳しくは、Shopify Webhook イベントトピックガイド ​を参照してください。
webhook.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/create Webhookの前にproducts/update Webhookが配信される可能性があります。
  • 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に接続する手順について説明します。

recommendation-more-help
experience-platform-help-sources