イベントルールを使用してイベントをフィルターし、DingTalk チャットボットにルーティングします。このトピックでは、カスタムイベントを使用して、前提条件、操作手順、および結果の確認方法について説明します。
前提条件
- EventBridge を有効化し、必要な権限を付与します。
- DingTalk クライアントをダウンロードします。
- カスタムチャットボットを追加します。重要 チャットボットを追加する際、セキュリティ設定で [追加の署名] を選択する必要があります。
背景情報
DingTalk チャットボットは、次のメッセージタイプとメッセージフォーマットをサポートしています:- テキストメッセージ:
I am me, a firework of a different colorのようなシンプルなテキストメッセージです。 - リンクメッセージ

- Markdown メッセージ

- ActionCard (単一ボタンレイアウト):イメージ、タイトル、まとめ、および単一の [続きを読む] リンクを持つメッセージカードです。カードをクリックすると URL が開きます。
- ActionCard (複数ボタンレイアウト):ヘッダーイメージ、タイトル、まとめ、および [良いコンテンツ] や [興味なし] のような複数のボタンを持つメッセージカードです。各ボタンで異なる URL を開くことができます。
- FeedCard メッセージ

ステップ 1:カスタムイベントソースの追加
- EventBridge コンソールにログインします。左側のナビゲーションウィンドウで、[イベントバス] をクリックします。
- 上部のナビゲーションバーでリージョンを選択します。[イベントバス] ページで、ターゲットのカスタムイベントバスをクリックします。
- 左側のナビゲーションウィンドウで、[イベントソース] をクリックし、[イベントソースの追加] をクリックします。
-
カスタムイベントソースの追加 パネルで、Name と Description を入力します。イベントプロバイダー には、イベントプロバイダー を選択し、OK をクリックします。
ステップ 2:イベントルールの作成
EventBridge コンソールにログインします。
左側のナビゲーションウィンドウで、[イベントバス] をクリックします。
上部のナビゲーションバーでリージョンを選択します。
[イベントバス] ページで、管理したいイベントバスの名前をクリックします。
左側のナビゲーションウィンドウで、[イベントルール] をクリックします。
- [イベントルール] ページで、[ルールの作成] をクリックします。
- [ルールの作成] ページで、次のステップを実行します:
- 基本情報の設定NameDescription ステップで、名前と説明を入力し、Next をクリックします。
- [イベントパターンの設定] ステップで、[イベントソースタイプ] に [カスタムイベントソース] を選択します。[イベントソース] で、ステップ 1 で作成したカスタムイベントソースを選択します。[イベントパターンの内容] エディターにイベントパターンを入力し、[次へ] をクリックします。
詳細については、「イベントパターン」をご参照ください。
- [ターゲットの設定] ステップで、イベントターゲットの次のパラメーターを設定し、[作成] をクリックします。
説明 1 つのイベントルールには最大 5 つのイベントターゲットを追加できます。
- サービスタイプ: DingTalk をクリックします。
- アドレス:DingTalk チャットボットの Webhook URL を入力します。
- Key:DingTalk チャットボットのシークレットキーを入力します。
- プッシュ内容:デフォルトで設定されています。カスタム変数とテンプレートを使用してイベント出力のフォーマットを設定します。
以下は、一般的なメッセージタイプの変数とテンプレートの例です:
- テキストタイプ
変数例:
{ "content": "$.data.content" }テンプレート例:
{ "msgtype":"text", "text":{ "content":"${content}@1760514XXXX" }, "at":{ "atMobiles":[ "1760514XXXX", "1898325XXXX" ], "isAtAll":false } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 text Object はい テキストメッセージの内容を指定します。 content String はい メッセージの内容を指定します。 at Object はい @メンション機能のパラメーターを指定します。 atMobiles Array いいえ @メンションするメンバーの携帯電話番号。 説明 電話番号は DingTalk アカウントに関連付けられている必要があります。isAtAll Boolean いいえ すべてのメンバーを @メンションするかどうかを指定します。 説明 isAtAll が true に設定されている場合、すべてのメンバーが @メンションされ、content 内の特定の @メンションは無視されます。 - リンクタイプ
変数例:
{ "name": "$.data.name" }テンプレート例:
{ "msgtype":"link", "link":{ "text":"この次期新バージョンは、創設者の ${name} によって「マングローブ」と名付けられました。これ以前は、プロダクトマネージャーは常にメジャーアップグレードにふさわしいコードネームを選んでいました。では、なぜ今回は「マングローブ」なのでしょうか?", "title":"時代の列車は前進する", "picUrl":"", "messageUrl":"www.example.com" } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 link Object はい リンクメッセージの内容を指定します。 text String はい メッセージの内容を指定します。 説明 内容が長すぎる場合、DingTalk はそれを切り詰めます。title String はい メッセージのタイトルを指定します。 picUrl String いいえ イメージの URL を指定します。 messageUrl String はい メッセージの URL を指定します。 - Markdown タイプ
変数例:
{ "time":"$.time", "content":"$.data.content" }テンプレート例:
{ "msgtype":"markdown", "markdown":{ "title":"杭州の天気", "text":"#### 杭州の天気 @1760514XXXX \n> ${content}\n> \n> ###### ${time} に公開 [天気](www.example.com) \n" }, "at":{ "atMobiles":[ "1760514XXXX" ], "isAtAll":false } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 markdown Object はい Markdown メッセージの内容を指定します。 title String はい メッセージのタイトルを指定します。 text String はい メッセージの内容を指定します。 at Object はい @メンション機能のパラメーターを指定します。 atMobiles Array いいえ @メンションするメンバーの携帯電話番号。 isAtAll Boolean いいえ すべてのメンバーを @メンションするかどうかを指定します。 説明 isAtAll が true に設定されている場合、すべてのメンバーが @メンションされ、content 内の特定の @メンションは無視されます。 - ActionCard タイプ (単一ボタンレイアウト)
変数例:
{ "content":"$.data.content" }テンプレート例:
{ "msgtype":"actionCard", "actionCard":{ "title":"20年前にジョブズが作りたかった Apple Cafe、それは Apple Store の前身だった", "text":" \n ### ${content} \n Apple Store のデザインは、テクノロジー重視のルーツから、よりライフスタイル志向のアプローチへとシフトしています。この方向性は、20年前に Apple がカフェを建設する計画を立てたことに遡ることができます。", "btnOrientation":"0", "singleTitle":"全文を読む", "singleURL":"www.example.com" } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 actionCard Object はい ActionCard メッセージの内容を指定します。 title String はい メッセージプレビューボックスに表示されるタイトルを指定します。 text String はい メッセージの内容を指定します。 btnOrientation String いいえ ボタンのレイアウトを指定します。 有効値:
- 0:ボタンは垂直に配置されます。
- 1:ボタンは水平に配置されます。
singleTitle String はい 単一ボタンのテキストを指定します。 singleURL String はい singleTitle ボタンの宛先 URL。 - ActionCard タイプ (複数ボタンレイアウト)
変数例:
{ "content":"$.data.content" }テンプレート例:
{ "msgtype":"actionCard", "actionCard":{ "title":"20年前にジョブズが作りたかった Apple Cafe、それは Apple Store の前身だった", "text":" \n ### ${content} \n Apple Store のデザインは、テクノロジー重視のルーツから、よりライフスタイル志向のアプローチへとシフトしています。この方向性は、20年前に Apple がカフェを建設する計画を立てたことに遡ることができます。", "btnOrientation":"0", "btns":[ { "title":"良いコンテンツ", "actionURL":"www.example.com" }, { "title":"興味なし", "actionURL":"www.example.edu" } ] } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 actionCard Object はい ActionCard メッセージの内容を指定します。 title String はい メッセージプレビューボックスに表示されるタイトルを指定します。 text String はい メッセージの内容を指定します。 btnOrientation String いいえ ボタンのレイアウトを指定します。 有効値:
- 0:ボタンは垂直に配置されます。
- 1:ボタンは水平に配置されます。
btns Array はい ボタンを指定します。 title String はい ボタンのタイトルを指定します。 actionURL String はい ボタンの宛先 URL。 - FeedCard タイプ
変数例:
{ "content":"$.data.content" }テンプレート例:
{ "msgtype":"feedCard", "feedCard":{ "links":[ { "title":"${content}", "messageURL":"www.example.com", "picURL":"img.example.com/image_04.png" }, { "title":"時代の列車は前進する", "messageURL":"www.example.edu", "picURL":"img.example.edu/image_05.png" } ] } }パラメーター タイプ 必須 説明 msgtype String はい メッセージタイプを指定します。 feedCard Object はい FeedCard メッセージの内容を指定します。 links Array いいえ FeedCard 内のリンクを指定します。 title String はい メッセージのタイトルを指定します。 messageURL String はい メッセージの URL を指定します。 picURL String はい イメージの URL を指定します。
詳細については、「イベントコンテンツの変換」をご参照ください。
- テキストタイプ
ステップ 3:イベントの発行
EventBridge コンソールにログインします。
左側のナビゲーションウィンドウで、[イベントバス] をクリックします。
上部のナビゲーションバーでリージョンを選択します。
[イベントバス] ページで、目的のイベントバスを見つけ、操作 列にある イベントのパブリッシュ をクリックします。
説明EventBridge コンソールは、カスタムイベントバスへのイベント発行のみをサポートしています。
[カスタムイベントバスにイベントを発行] パネルで、以下の設定を構成します。
設定 説明 カスタムイベントソース ドロップダウンリストから既存のカスタムイベントソースを選択します。 イベント本体 イベントの内容を入力します。 OK をクリックします。
結果の確認
DingTalk クライアントをチェックして、メッセージが受信されたことを確認します。