ZoomのIncoming Webhookチャットボットの使用
Incoming Webhookアプリを使用すると、Amazon CloudWatchなどの外部サービスから任意のZoomチャットチャネルにメッセージを直接送信できます。任意のチャネルでチャットアプリを使用して、一意のエンドポイントと検証トークンを生成します。これらの認証情報を使用すると、HTTP POSTリクエストを通じてZoomチャットチャネルにメッセージを送信できます。
Incoming Webhookチャットボットを使用するための要件
- プロ、ビジネス、教育機関、またはエンタープライズアカウント
- アカウントオーナーまたは管理者特権
- トークンとエンドポイントを使用したHTTP POSTリクエストの送信に精通している
- Zoom App MarketplaceでIncoming Webhookチャットボットを使用するには管理者の承認が必要です。
注: アプリが事前に承認されていない場合は、Zoom管理者にお問合せください。詳しくは、管理者アプリの承認をご覧ください。
Incoming Webhookを追加および設定する方法
Zoomアプリマーケットプレイスから追加する
Incoming Webhookチャットボットを追加し、設定するには、Zoomアカウントの管理者権限を持っている必要があります。
- アカウント管理者としてZoom App Marketplaceにサインインします。
- ウィンドウの右上でIncoming Webhookを検索します。
- 検索結果で、Incoming Webhookアプリを見つけてクリックします。
注: アプリが事前承認されていない場合は、Zoom管理者に連絡して、このアプリをアカウント用に承認するよう依頼します。詳しくは、管理者アプリの承認をご覧ください。 - [追加] をクリックします。
- アプリに必要な権限を確認して [認証] をクリックします。
これでIncoming Webhookアプリが追加されました。
Incoming Webhookチャットボットを設定する
- Zoomデスクトップアプリにサインインします。
- [Team Chat] タブ
をクリックします。 - アプリ
で、Incoming Webhookを検索して選択するか、メッセージを受信するチャットチャネルを上記で選択します。 - 新しく接続するには、次のコマンドのいずれかを入力します。
この情報を使用してPOSTリクエストを送信できます。
注: Incoming Webhookチャットボットにメッセージを送信させるすべてのチャネルに対してこれらの手順を完了する必要があります。
Zoom Team Chatにメッセージを送信する方法
接続を新規作成した後、POSTリクエストを連携のエンドポイントに送信し始めることができます。POSTリクエストの認証ヘッダーに検証トークンが含まれていることを確実にしてください。
注: エンドポイントはPOSTリクエストのみを受け付けます。
接続をテストするには、ターミナルか開いているgit-bash(またはcURLコマンドをサポートする同等のもの)を使用できます。Incoming Webhookチャットボットからの初期の1対1のチャットメッセージからサンプルcURLをコピーできます。送信が完了すると、指定したチャネルに送信したテストメッセージが表示されます。テストが成功した場合は「200 OK」という応答があります。
署名付きの接続の場合、署名は次の方法で作成される必要があります。
base64UrlEncode(HMACSHA256({format}&${timestamp}&${input message}, secret))
形式: message | fields | list | full | upload | img
タイムスタンプ: ミリ秒単位、30分で期限切れ
例として:
echo -n "{format}&{timestamp}&{input message}" | openssl dgst -sha256 -hmac {secret} -binary | base64
Incoming Webhookチャットボットを使用してメッセージを送信する場合、メッセージのタイプと複雑性には6つのオプションがあります。
- メッセージ形式: この形式では、作成した接続から送信されるプレーンテキストを送信できます。コンテンツは本文に文字列として送信する必要があります。この形式を使用するには、messageを形式(?format=message)としてクエリパラメータに追加します。
POST <endpoint>?format=message
Authorization: <verificationToken>
Content-Type: application/json
Body: "This is a test message."
- フィールド形式: この形式では、フィールドで簡易的な書式を送信できます。たとえば、メッセージをフィールドにフォーマットできます。この形式を使用するには、fieldsを形式(?format=fields)としてクエリパラメータに追加します。
POST <endpoint>?format=fields
Authorization: <verificationToken>
Content-Type: application/json
Body:
{
"Field 1": "bar",
"Field 2": "qux"
}
- リスト形式: この形式では、簡単な書式をリストとして送信できます。たとえば、メッセージをリストとしてフォーマットできます。この形式を使用するには、listを形式(?format=list)としてクエリパラメータに追加します。
POST <endpoint>?format=list
Authorization: <verificationToken>
Content-Type: application/json
Body:
{
"Item 1": "Item 1",
"Item 2": "Item 2"
}
- フルフォーマット: この形式では、Zoomチャットメッセージでリッチメッセージ形式を生成して送信できます。このような形式を使用すると、チャットボットメッセージでヘッダー、サブヘッダー、リンク、ボタン、ドロップダウン、添付ファイルなどを使用できるようになります。この形式を使用するには、fullを形式(?format=full)としてクエリパラメータに追加する必要があります。サポートされるJSONオブジェクトについての詳細は、こちらのデベロッパー向けドキュメントをご覧ください。
POST <endpoint>?format=full
Authorization: <verificationToken>
Content-Type: application/json
Body:
{supported JSON object}
- アップロード形式: この形式では、UploadLink、UploadToken、UploadUserIdなど、ファイルのアップロードに必要な情報を取得できます。この形式を使用するには、uploadを形式(?format=upload)としてクエリパラメータに追加する必要があります。本文には何も追加する必要はありません。
注: これには署名付きの接続が必要です。
POST <endpoint>?format=upload
Authorization: <verificationToken>
Content-Type: application/json
- 画像形式: この形式では、メッセージで画像を送信できます。この形式を使用するには、imageを形式(?format=img)としてクエリパラメータに追加する必要があります。
注: これには署名付きの接続が必要です。
POST <endpoint>?format=img
Authorization: <verificationToken>
Content-Type: application/json
Body:
[
{
"text":"input message",
"img":["file1","file2"]
}
]
Incoming Webhookチャットボットを使用する方法
使用可能なコマンド
- /inc connect: /inc connect <connectionName>と入力し、<ConnectionName>を適切に置き換えて、エンドポイント(URL)とトークンを作成し現在のチャットチャネルに直接メッセージを送信し始めます。このチャットボットは、チャネルと同様に1対1の直接メッセージもサポートします。
- /inc connect -s: /inc connect -s <connectionName>と入力し、<ConnectionName>を適切に置き換えて、エンドポイント(URL)とトークン、署名とアクセスコントロール画像のサポートを作成します。
- /inc regenerate: /inc regenerate <connectionName>と入力し、<ConnectionName>を適切に置き換えて、指定した接続の認証トークンを再生成します。
- /inc disconnect: /inc disconnect <connectionName>と入力し、<ConnectionName>を適切に置き換えて、指定した接続を削除します。
- /inc disconnect all: /inc disconnect allと入力し、Incoming Webhookチャットボットのすべてのチャネルの接続をすべて削除します。
- /inc configure: /inc configureと入力し、現在のチャットチャネルのすべての接続を一覧表示します。
- /inc configure all: /inc configure alと入力し、すべてのチャネルのすべての接続を一覧表示します。
- /inc admin: /inc adminと入力し、管理者ページを開くためのリンクを取得します。
画像付きメッセージを送信する方法の例
- アップロード形式でメッセージを送信し、アップロード情報を取得します
curl 'https://integrations.zoom.us/chat/webhooks/incomingwebhook/dSUcla-dQaGYgqGuBk3BsQ?format=upload×tamp={timestamp}' -X POST -H 'Authorization: {authorization}'
- 取得したアップロード情報で画像をアップロードすると、レスポンスヘッダーZoom-File-IDのファイルIDが返されます
curl '{uploadLink}' -i -F file=@{path} -X POST -H 'Authorization: Bearer {uploadToken}' -H 'Zoom-File-Meta: {"ownerType":"user","ownerId":"{userId}"}'
- アップロードしたファイルIDで画像形式のメッセージを送信します
curl 'https://integrations.zoom.us/chat/webhooks/incomingwebhook/dSUcla-dQaGYgqGuBk3BsQ?format=img×tamp={timestamp}' -X POST -H 'Authorization: {authorization}' -H 'Content-Type: application/json' -d '[{"text":"input message","img":["fileId1","fileId2"]}]'
Incoming webhookチャットボットを削除する方法
- アカウント管理者としてZoom App Marketplaceにサインインします。
- ページの右上隅の [管理] をクリックします。
- ナビゲーションメニューで、[追加したアプリ] をクリックします。
- Incoming WebHookアプリの横にある [削除] をクリックします。
- ダイアログを確認し、[削除] をクリックします。
注: この手順を実行すると、Zoom Team Chatでアクティブなすべての接続も削除されます。
追加のサポートについては、Zoom サポートまでリクエストを送信してください。