Incoming Webhook アプリ

Incoming Webhook アプリ とは {#overview}

他の Web サービスや自社システムからの通知を、LINE WORKS のトークルームで簡単に受信するチャットボットアプリです。 複数のサービスと連携でき、複数人トークルームにも対応しています。

incomingwebhook_overview

アプリディレクトリの無料アプリとして提供しています。詳しくは 利用方法 をご覧ください。

機能 {#feature}

本アプリで発行した Webhook URL へ HTTP リクエストを送ることで、通知先のトークルームに Incoming Webhook Bot からメッセージが届きます。

incomingwebhook_feature

Bot との違いについて {#compare-with-bot}

本アプリは、Webhook URL に通知情報を HTTP リクエストするだけでメッセージが送信できるため、Developer Console での Bot 開発と比べ、主に以下の作業が不要となります。

  • Developer Console での Bot 設定作業や API 利用のための設定
  • Access Token 処理などの API 実行のための処理の実装
  • Access Token の管理 など

これにより、IFTTT や Zapier、Make といった連携支援ツールと組み合わせることで、ローコードなサービス連携が可能になります。

ただし、本アプリは以下の機能には対応していません。

  1. トークルームからのメッセージの送信には対応していません
    • 本アプリは、外部サービスからのメッセージを受信できる機能を持ち、トークルームからのメッセージの送信には対応していません。
  2. 画像を含むファイルの送信や、高度なメッセージ形式には対応していません。
    • メッセージはあらかじめ決められた形式に従う必要があります。
    • 詳しくは リクエスト形式 をご覧ください。
  3. リッチメニュー / 固定メニューのカスタマイズはできません。
    • トークルーム下部のメニューには、Incoming Webhook トークルームからのメッセージの受信アプリ用の項目が固定で表示されます。

これらを行いたい場合は、Bot をご利用ください。

利用方法 {#usage}

  1. アプリディレクトリから Incoming Webhook アプリを追加します。
  2. Incoming Webhook からメッセージを受け取りたいトークルームに、Incoming Webhook Bot を招待します。
  3. トークルームの チャンネル ID を取得します。トークルームのメニューにある「チャンネルID」から取得できます。
  4. トークルームの下部に表示されるメニューの「Webhook リスト」から Webhook リスト画面を開きます。
  5. Webhook リスト画面の「追加」から Webhook URL を追加します。その際に、タイトルと上記で取得したチャンネル ID を入力します。
  6. 追加すると Webhook URL が発行されます。
  7. 発行された Webhook URL を用いて、任意の連携設定を行うことで設定は完了します。リクエスト形式 をご覧ください。

制限事項 {#ratelimit}

Incoming Webhook アプリには、以下の制限が設けられています。

  • 追加可能なWebhook URLは 5 つ までです。
    • 複数人トークルームへの情報共有にご利用ください。
  • リクエストに Rate Limit があります。利用する LINE WORKS ドメインあたり 120 requests/min です。
    • 注意: これは Webhook URL 単位にかかる制限ではありません。1 つの Rate Limit を全ての Webhook URL で共有します。
      • 1 URL 利用の場合 : 1 URL あたり平均 120 requests/min
      • 2 URL 利用の場合 : 1 URL あたり平均 60 requests/min
      • 3 URL 利用の場合 : 1 URL あたり平均 40 requests/min
      • 4 URL 利用の場合 : 1 URL あたり平均 30 requests/min
      • 5 URL 利用の場合 : 1 URL あたり平均 24 requests/min

補足

  • Incoming Webhook アプリは LINE WORKS API とは分離されているため、そちらの API の制限には影響しません。

リクエスト形式 {#request}

URL {#request-url}

設定画面で発行した URL にリクエストします。

形式

https://webhook.worksmobile.com/message/xxxxxxxxxxxxxxxxx

Request Method {#request-method}

POST

Request Headers {#request-headers}

Headervalue
Content-Typeapplication/json

Request Body {#request-body}

incomingwebhook_message

json 形式でリクエストします。

PropertyTypeDescription
titleStringタイトル
未指定の場合、Webhook リスト画面で指定したタイトルが表示されます。
bodyobject(WebhookMessageBody)リクエストボディ

required
buttonobject(WebhookMessageButton)リンクボタン
未指定の場合、メッセージには表示されません。
WebhookMessageBody {#request-webhookmessagebody}
PropertyTypeDescription
textStringテキスト
メンション が利用できます。
required
WebhookMessageButton {#request-webhookmessagebutton}
PropertyTypeDescription
labelStringボタンラベル

required
urlStringURL

required

Request example {#request-example}

{    "title" : "Inquiry form",    "body" : {        "text":"Hi <m userId=\"user@example.com\">, You have received a new inquiry."    },    "button" : {        "label" : "URL",        "url" : "https://example.com"    }}

curl

curl -X POST https://webhook.worksmobile.com/message/xxxxxxxxxxxxxxxxx \    -H 'Content-Type: application/json' \    -d '{"title":"Inquiry form","body":{"text":"Hi <m userId=\"user@example.com\">, You have received a new inquiry."},"button":{"label":"URL","url":"https://example.com"}}'

レスポンス形式 (Success) {#response-success}

Status Code {#response-success-status-code}

200

Response Headers {#response-success-headers}

RateLimit に関する情報が含まれます。

Headerdescription
RateLimit-Used基準時間からの API 呼び出し回数
RateLimit-Limit適用されている Rate Limit の値
RateLimit-Remaining基準時間がリセットされるまでに API 呼び出しが可能な残りの回数
RateLimit-Reset基準時間がリセットされるまでの残り時間 (単位 : sec)

Response Body {#response-success-body}

{"code": 200, "description": "success"}

レスポンス形式 (Error) {#response-error}

Status Code {#response-error-status-code}

  • 400 : BadRequest
  • 429 : Too Many Requests

Response Body

codedescription
400invalid parameter
400missing parameter
400invalid webhook URL
429too many request

example

{"code": 400, "description": "invalid parameter"}

記載された商品名、各製品名は各社の登録商標または商標です。