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 を作成する
Flux アプリの SORACOM Flux Studio の
タブを表示します。詳しくは、Flux アプリの SORACOM Flux Studio を表示する を参照してください。
Incoming Webhook を作成するチャネルをクリックします。
→ の順にクリックします。
Incoming Webhook の
と を入力して、 をクリックします。Incoming Webhook が作成されます。
をクリックします。
Webhook URL が表示されます。
Webhook URL は漏洩しないように注意してください
Webhook URL を利用すると、API キーや API トークンなどの認証情報なしにデータを送信し、Flux アプリを起動できます。第三者に漏洩しないように注意してください。
非表示にするには、
をクリックします。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 の 実行履歴 (ログ) を参照してください。 | タブを利用します。詳しくは、
appId | Flux アプリ ID。 |
channelId | チャネル ID。 |
payload | チャネルに送信されたペイロード。 |
payload.contentType | Webhook URL 送信時のリクエストヘッダーの Content-Type で指定した値。 |
payload.content | チャネルに送信されたペイロード。ペイロードが Base64 でエンコードされた場合は、エンコード後のデータです。 |
payload.isBase64Encoded | ペイロードが、Flux によって Base64 でエンコードされたかどうか。 |
context.eventType | イベントの種類。Webhook URL にデータを送信した場合は、incoming-webhook です。 |
context.webhookId | Incoming 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 です。 |
webhookId | Incoming Webhook の ID です。 |