Dialogflow と Telegram を統合すると、Dialogflow テクノロジーをベースに、自然言語を理解する Telegram ボットを簡単に作成できます。
制限事項
この統合では、デフォルトのエージェント言語のみがサポートされます。
Telegram の設定
エージェントの Telegram 統合を設定するには、次のものが必要です。
Telegram でボットを作成する
- Telegram にログインし、https://telegram.me/botfather に移動します。
- ウェブ インターフェースで [Start] ボタンをクリックするか、「/start」と入力します。
- [/newbot] をクリックするか入力して、新しく作成するボットの名前を入力します。
- ボットのユーザー名を入力します。この名前は「bot」で終わる必要があります(例: garthsweatherbot)。
- 生成されたアクセス トークンをコピーします。

Dialogflow の設定
- Dialogflow の左側のメニューで [Integrations] に移動します。
- [Telegram] タイルをクリックします。
- [Access Token] に、前の手順でコピーした値を貼り付けます。
- [Start] ボタンをクリックします。

テスト
設定が完了すると、BotFather からボットへのリンクが提供されます。このリンク先に移動してエージェントをテストします。

Telegram トークンを再生成する
Telegram 統合が有効になっているエージェントの Telegram トークンを再生成するには、次の手順を実行します。
- Dialogflow の統合設定に移動し、[STOP] をクリックします。
- Telegram でトークンを再生成します。
- 統合設定で新しい Telegram トークンを入力し、[START] をクリックします。
エージェントと新しい Telegram ボットの統合
Telegram 統合が有効になっているエージェントを、新しい Telegram ボットとリンクさせるには、次の手順を実行します。
- Dialogflow の統合設定に移動し、[STOP] をクリックします。
- 必要に応じて Telegram の古いボットを削除します。
- 統合設定で新しい Telegram トークンを入力し、[START] をクリックします。
イベント
この統合によって、次のイベントがトリガーされます。
| イベント | 説明 |
|---|---|
TELEGRAM_WELCOME |
Telegram ボットでユーザーが会話を開始したとき、または /start と入力した時点でトリガーされます。 |
TELEGRAM_HELP |
ユーザーが Telegram ボットとの会話中に /help を入力するとトリガーされます。 |
TELEGRAM_SETTINGS |
ユーザーが Telegram ボットとの会話中に /settings を入力するとトリガーされます。 |
リッチ レスポンス メッセージ
次のリッチ レスポンス メッセージがサポートされています。
画像のレスポンス
サポートされている形式とサイズ:
- 最大サイズ 5 MB
カード形式のレスポンス
画像 URL フィールドまたはタイトル フィールドが必須です。
URL とテキスト ポストバック付きのボタンがサポートされています。URL 付きのボタンをタップするとウェブページが開き、テキスト付きのボタンをタップするとユーザーのクエリとしてテキストが送信されます。
クイック返信のレスポンス
ワンクリックの Telegram の統合でのクイック返信は、Telegram のキーボード ボタンに対応しています。
ユーザーがいずれかのボタンをクリックすると、ボタンが閉じられます。これにより、ユーザーが会話の古いメッセージに付いているボタンをクリックする問題を防ぐことができます。
カスタム ペイロードのレスポンス
ワンクリックの Telegram の統合で書式設定されたテキストとハイパーリンク
Telegram の bot は、書式設定されたテキストやハイパーリンクを送信できます。
次の例では、Markdown 解析モードを使用してハイパーリンク付きの書式設定されたテキストを送信します。
{ "telegram": { "text": "You can read about *entities* [here](/docs/concept-entities).", "parse_mode": "Markdown" } }
Telegram のドキュメントを参照してください。
インライン キーボード ボタン
次の例は、カスタム ペイロード要素でインライン キーボード ボタンを定義する方法を示しています。
{
"telegram": {
"text": "Pick a color",
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Red",
"callback_data": "Red"
}
],
[
{
"text": "Green",
"callback_data": "Green"
}
],
[
{
"text": "Yellow",
"callback_data": "Yellow"
}
],
[
{
"text": "Blue",
"callback_data": "Blue"
}
],
[
{
"text": "Pink",
"callback_data": "Pink"
}
]
]
}
}
}