🧑‍🔧

【Shopify.dev和訳】Apps/Flow/Webhooks

2021/09/16に公開

この記事について

この記事は、Apps/Flow/Webhooksの記事を和訳したものです。

記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

Shopify Flow webhooks

有効なワークフローでトリガーを使用しているストアに関する Webhook を Shopify Flow から受け取ることができます。次に、このデータを使用してアプリをより効率的にし、flowTriggerReceiveミューテーションの実行を減らすことができます。

このガイドでは、Shopify Flow から trigger use webhooks を受信するようにアプリを構成する方法を示します。

トリガー使用法の Webhooks のしくみ

トリガー使用法の Webhooks には、トリガーとそれを使用しているストアに関する識別情報が含まれており、トリガーが使用されているかどうかを示します。この情報を使用して、現在トリガーを使用しているストアを追跡し、それらのストアのみにトリガーリクエストを送信できます。

プロパティ

トリガー使用法の Webhooks(HTTP POST リクエスト)は JSON でフォーマットされており、次のプロパティが含まれています。

プロパティ データタイプ 詳細
flow_trigger_definition_id String Shopify フロートリガーの一意の識別子。 スプレッドシートに行を追加
has_enabled_flow Boolean トリガーを使用する有効なワークフローがストアにあるかどうか。
有効な値:
true:有効になっていて、トリガーを使用するワークフローが少なくとも 1 つあります。
false:トリガーを使用する有効なワークフローはありません。
true
shop_id Number Shopify ストアの一意の識別子。 690933842
shopify_domain String Shopify ストアの myshopify ドメイン。 johnsapparel.myshopify.com
timestamp ISO 8601の日付とタイムスタンプ 通知が作成された時刻。新しいタイムスタンプの通知が優先されます。データストアにすでにタイムスタンプがあり、新しいタイムスタンプを受け取った場合は、データストア内のこのペイロードの情報を上書きします。逆に、データストアの情報よりも古いタイムスタンプを受け取った場合は、このペイロードを無視してください。 2019-01-25T16:44:10.999Z

以下は、使用通知(HTTP POST)リクエストの本文の例です。

{
  "flow_trigger_definition_id": "Add row to spreadsheet",
  "has_enabled_flow": false,
  "shop_id": "690933842",
  "shopify_domain": "johnapparel.myshopify.com",
  "timestamp": "2019-01-25T16:44:10.999Z"
}

Webhook イベント

Shopify Flow は、次のイベントが発生したときにトリガー使用量 Webhooks を送信します。

  • マーチャントは、トリガーを使用するワークフローを有効にします。この場合、Webhook には"has_enabled_flow": trueが含まれています。
  • Web サーバーがトリガーをストアに送信しますが、そのストアにはトリガーを使用するワークフローがありません。この場合、Webhook には"has_enabled_flow": falseが含まれます。

Web サーバーの応答時間とステータスコード

マーチャントがトリガーを使用するワークフローを有効にしようとすると、Shopify Flow はトリガー使用法の Webhook を Web サーバーに送信します。

Web サーバーが 5 秒以内に応答しない場合、または Web サーバーが別のステータスコードで応答する場合、マーチャントはそのワークフローを有効にできません。マーチャントは、Shopify Flow アプリで、後でワークフローを有効にしてみるように指示する通知を受け取ります。

1.Web サーバーを構成します

まず、Shopify Flow Webhooks をリッスンするように Web サーバーに構成します。

  1. Shopify Flow からのトリガー使用の Webhook をリッスンするように Web サーバーで URL を構成します。
  2. API シークレットキーを使用してトリガー使用の Webhook の HMAC ヘッダーを確認するように Web サーバーを構成します。
    HMAC ヘッダーは、次の HTTP ヘッダーにあります:x-shopify-hmac-sha256。Ruby ベースの Web フレームワークを使用している場合、ヘッダーはhttp-x-shopify-hmac-sha256です。
  3. トリガー使用法の Webhook を受信したときに 5 秒以内に応答するように Web サーバーを構成します。

2.Webhook データを処理および保存する

Shopify Flow Webhooks のリストにサポートを追加した後、Webhook データを処理および保存するように Web サーバーを構成できます。

  1. トリガーを使用しているストアのリストを永続データストアに保存します。timestampプロパティを使用して、既存のエントリを古い情報で上書きしないようにします。
  2. アプリケーションを編集して、トリガーを使用しているストアにのみトリガーを送信します。

3.Webhook を構成します

最後に、パートナーダッシュボードで Webhook を構成します。マーチャントがトリガーを使用するワークフローを有効または無効にすると、Shopify フローから Web サーバーに Webhooks が送信されます。

  1. パートナーダッシュボードで、アプリを開き、テストアプリをクリックします。
  2. 拡張機能をクリックしてから、フローをクリックします。
  3. Webhook の構成をクリックします。
  4. Shopify Flow がトリガー使用法の Webhook を送信するために使用する URL を入力します。この URL にlocalhostを含めることはできません。
  5. Saveをクリックします。

次のステップ

  • Shopify Flowをよく理解し、コネクタの構築について学びます。
  • アプリを ShopifyFlow に接続して、アプリで発生するイベントがワークフローをトリガーできるようにします。
  • アプリを ShopifyFlow に接続して、ワークフローアクションの実行時にアプリがデータと情報を受信できるようにします。

Shopify アプリのご紹介

Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。

https://apps.shopify.com/shopify-application-314?locale=ja&from=daniel

Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。

https://apps.shopify.com/font-picker-1?locale=ja&from=daniel

Discussion

ログインするとコメントできます