Soracom

Users

ドキュメント
Home ドキュメント SORACOM Flux (Public beta) Getting Started

Incoming Webhook を使用して Flux アプリを起動する

Incoming Webhook は、チャネルにイベントを送信するための専用の Webhook URL を発行する機能です。発行した Webhook URL を利用すると、外部システムと Flux アプリを簡単に接続できます。

API/マニュアル実行イベントソース を利用してチャネルにデータを送信して Flux アプリを起動する場合、API キーと API トークン が必要です。

これに対して、Incoming Webhook を利用すると、API キーと API トークンを発行することなく、チャネルにデータを送信して Flux アプリを起動できます。また、Incoming Webhook は任意のチャネルで発行できるため、イベントソースに連結していない任意のチャネルから Flux アプリを起動できます。

  • ランダムで予測不可能な文字列を含む Webhook URL が自動的に発行されます。任意の URL を指定して発行することはできません。
  • Incoming Webhook はすべてのチャネルで作成できます。

Incoming Webhook を作成する

  1. Flux アプリの SORACOM Flux Studio の [Studio] タブを表示します。

    詳しくは、Flux アプリの SORACOM Flux Studio を表示する を参照してください。

  2. Incoming Webhook を作成するチャネルをクリックします。

  3. [イベントソース][+Incoming Webhook を作成する] の順にクリックします。

  4. Incoming Webhook の [名前][説明] を入力して、[作成する] をクリックします。

    Incoming Webhook が作成されます。

  5. [Webhook URL を表示する] をクリックします。

    Webhook URL が表示されます。

    Webhook URL は漏洩しないように注意してください

    Webhook URL を利用すると、API キーや API トークンなどの認証情報なしにデータを送信し、Flux アプリを起動できます。第三者に漏洩しないように注意してください。

    非表示にするには、[Webhook URL を非表示にする] をクリックします。

    Incoming Webhook は Flux アプリごとに 10 件まで発行できます

    Incoming Webhook を区別するために ID が発行されます。ID は、Incoming Webhook の右下に表示されます。

Webhook URL にデータを送信して Flux アプリを起動する

Webhook URL に HTTP POST リクエストを送信すると、Flux アプリが起動して、Webhook URL を発行したチャネルから実行が開始されます。

Webhook URL に {"temperature": 25} を送信する例:

$ curl -X POST "https://g.api.soracom.io/v1/flux/incoming_webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" \
  -d '{"temperature": 25}'
{
  "messageId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
  "eventId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
  "appId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
  "channelId": "XXXXXXXXXXXXXXXXXXXXXXXXXX",
  "payload": {
    "contentType": "application/json",
    "content": "{\"temperature\":25}",
    "isBase64Encoded": false
  },
  "context": {
    "eventType": "incoming-webhook",
    "webhookId": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
  },
  "timestamp": 1735689600000
}

レスポンスには、以下の値が含まれます。

項目説明
messageIdメッセージ ID。
eventIdイベント ID。ユーザーコンソールでイベント ID を確認するには、SORACOM Flux Studio の [実行履歴] タブを利用します。詳しくは、実行履歴 (ログ) を参照してください。
appIdFlux アプリ ID。
channelIdチャネル ID。
payloadチャネルに送信されたペイロード。
payload.contentTypeWebhook URL 送信時のリクエストヘッダーの Content-Type で指定した値。
payload.contentチャネルに送信されたペイロード。ペイロードが Base64 でエンコードされた場合は、エンコード後のデータです。
payload.isBase64Encodedペイロードが、Flux によって Base64 でエンコードされたかどうか。
context.eventTypeイベントの種類。Webhook URL にデータを送信した場合は、incoming-webhook です。
context.webhookIdIncoming Webhook の ID。
timestampタイムスタンプ。

チャネルに送信できるペイロードの上限は 32,768 バイトです。32,768 バイトよりも大きいデータは送信できません。

チャネルに送信されるデータ

Incoming Webhook を使用した場合にチャネルに送信されるデータは、MESSAGE と CONTEXT です。

実際に Flux アプリに送信されたデータは、SORACOM Flux Studio の [実行履歴] タブで確認できます。詳しくは、実行履歴 (ログ) を参照してください。

MESSAGE

Webhook URL に送信されたデータ (ボディ) です。

チャネルに送信できるペイロードの上限は 32,768 バイトです。32,768 バイトよりも大きいデータは送信できません。

CONTEXT

{
  "eventType": "incoming-webhook",
  "webhookId": "XXXXXXXXXXXXXXXXXXXXXXXXXX"
}
項目説明
eventTypeイベントの種類。Webhook URL にデータを送信した場合は、incoming-webhook です。
webhookIdIncoming Webhook の ID です。