# Telegram トリガー

> Telegram ボットがメッセージを受け取るたびにワークフローを開始し、メッセージのテキスト、写真、動画、オーディオを後続のノードに渡します。

Source: https://nodaro.ai/ja/docs/nodes/automate/telegram-trigger

**Telegram トリガー**（Telegram Trigger）ノードは、Telegram ボットがメッセージを受け取るたびにワークフローを開始します。メッセージのテキストと、メッセージに含まれる写真、動画、オーディオのファイルを、後続のノードに渡します。たとえば、受け取ったメッセージをすべて画像にするボットを作れます。トリガー自体は無料です。

- Found in: Automate › Triggers
- Output: data
- API type: `telegram-trigger`

## 使いどころ
- テキストメッセージが届くたびに、画像や動画を生成するボットを作ります。
- [**プロンプト**（Prompt）](https://nodaro.ai/docs/nodes/automate/prompt)ノードでメッセージへの返答を作り、[**Telegram 投稿**（Telegram Post）](https://nodaro.ai/docs/nodes/publish/telegram-post)で返信します。
- ユーザーがボットに送った写真、動画、オーディオファイルを受け取ります。
- ボットが参加しているグループやチャンネルの投稿を集め、1 件ずつ処理します。

## クイックスタート
### ボットを接続する
まず、**連携**で Telegram ボットを接続します。[SNS への公開](https://nodaro.ai/docs/guides/publishing-to-social)を参照してください。

### ノードを追加してボットを選ぶ
キャンバスで Tab を押し、**自動化 › トリガー › Telegram トリガー**を選びます。設定パネルの **Telegram ボット**で、ボットを選びます。

### メッセージを絞り込む
必要に応じて、**チャット ID フィルター**にチャットを入力し、実行を開始する**メッセージの種類**を選びます。

### 有効にして保存する
**トリガーを有効にする**をクリックしてから、ワークフローを保存します。保存するとボットが Telegram に登録され、ステータスに**有効：メッセージを待機中**と表示されます。

### ボットにメッセージを送る
これで、条件に一致するメッセージごとに実行が開始されます。

Workflow: ボットに届いたテキストメッセージがそれぞれ画像生成のプロンプトになり、「Telegram 投稿」が画像をチャットに送ります。

- Telegram トリガー → 画像生成 (プロンプト)
- 画像生成 → Telegram 投稿

## 設定
| 設定 | 説明 |
| --- | --- |
| **Telegram ボット** | メッセージを待ち受ける、接続済みのボットです。必須です。ボットがないと、何も登録されません。まだボットを接続していない場合は、パネルに**連携**へのリンクが表示されます。 |
| **チャット ID フィルター** | このチャットからのメッセージだけが実行を開始します。`@channel` や、`-100` で始まる数値の ID などを指定します。すべてのチャットのメッセージを受け取るには、空欄のままにします。 |
| **メッセージの種類** | 実行を開始するメッセージの種類です。**テキスト**、**写真**、**動画**、**オーディオ**、**ドキュメント**があります。デフォルトでは、5 種類すべてがオンです。 |
| **トリガーを有効にする** | トリガーをオンにします。オフにするときは、**トリガーを無効にする**を使います。変更は、ワークフローを保存したときに適用されます。 |

パネル上部のステータスには、トリガーの状態が表示されます。

| ステータス | 意味 |
| --- | --- |
| **有効：メッセージを待機中** | トリガーがオンで、ボットが選択されています。 |
| **ボットを選択してください（まだ待機していません）** | トリガーはオンですが、ボットが選択されていません。 |
| **無効** | トリガーがオフです。 |

## ノードが渡すもの
このノードの出力は、**メッセージ**の 1 つです。実行が始まると、Nodaro はメッセージの内容に応じて、接続されたノードにメッセージを渡します。

| メッセージの内容 | 渡し先 |
| --- | --- |
| テキスト | 次のノードのプロンプト、または公開系ノードのキャプション |
| 写真 | 画像ノードのリファレンスなど、画像の入力 |
| 動画 | 動画の入力 |
| オーディオ | オーディオの入力 |

メッセージには、チャット ID とメッセージ ID も含まれます。写真、動画、オーディオのファイルは、実行が始まる前に Nodaro がストレージにダウンロードします。

## 1 つのボットに複数のトリガー
Telegram のボットは、メッセージをただ 1 つのアドレスに送ります。そのため、同じボットのトリガーはすべて、1 つの登録を共有します。1 つのボットに、好きなだけ多くのワークフローを割り当てられます。届いたメッセージは、すべてのトリガーの**チャット ID フィルター**と**メッセージの種類**に照らして確認され、一致したトリガーがそれぞれ自分の実行を開始します。

1 つのトリガーを削除しても、ほかのトリガーが止まることはありません。トリガーを無効にしたり削除したりすると、次に保存したときにそのトリガーが取り除かれます。ボットに有効なトリガーが 1 つも残っていない場合、Nodaro は Telegram からボットの登録を削除します。

## トリガーによる実行で動く範囲
ノードに接続したトリガーは、その分岐だけを実行します。つまり、トリガーより後のノードと、それらが入力として必要とするすべてのノードです。どこにも接続していないトリガーは、ワークフロー全体を実行します。エディターで設定した Telegram トリガーは、それぞれ自分の分岐を実行します。そのため、同じボットにチャットフィルターの異なるトリガーが 2 つあると、両方に一致するメッセージに対して、別々の実行が 2 回開始されます。エディターからの手動実行、API からの実行、公開したアプリの実行は、トリガーの分岐に限定されることはありません。

## クレジット
Telegram トリガーは無料です。各実行では、実行したノードの分を支払います。

## トラブルシューティング
- **保存時に、トリガーを登録できなかったという警告が出る**：Telegram が登録を拒否したため、警告にその理由が表示されます。よくある原因の 1 つは、ボットを接続した後に、ボットのトークンが取り消されたことです。もう 1 つは、セルフホスティング環境の `PUBLIC_URL` が、Telegram からアクセスできる HTTPS のアドレスになっていないことです。登録に失敗した場合、トリガーは作成されません。
- **グループのメッセージに何も反応しない**：BotFather でボットのグループプライバシーモードをオフにしない限り、ボットが受け取るのは、ボット宛てのグループメッセージだけです。
- **実行にメディアが含まれていない**：Telegram のボットがダウンロードできるファイルは 20 MB までです。それより大きいファイルは、メディアなしのメッセージとして届きます。

## Frequently asked questions

### Telegram のメッセージでワークフローを開始するにはどうすればよいですか？

「連携」で Telegram ボットを接続し、Telegram トリガーを追加してボットを選びます。「トリガーを有効にする」をクリックして、ワークフローを保存します。以降は、ボットが受け取るメッセージごとに実行が開始されます。

### 複数のワークフローで、同じボットのメッセージを待ち受けられますか？

はい。届いたメッセージは、そのボットのすべてのトリガーのフィルターと照合され、一致したトリガーがそれぞれ自分の実行を開始します。1 つのトリガーを削除しても、ほかのトリガーが止まることはありません。

### ボットがグループ内のメッセージに反応しないのはなぜですか？

Telegram のボットは、グループプライバシーモードがオフになっていない限り、ボット宛てのグループメッセージしか受け取りません。BotFather で、そのボットのプライバシーモードをオフにしてください。

### トリガーを 1 つのチャットに限定できますか？

はい。「チャット ID フィルター」に、@channel の形式か、-100 の後に数字が続く数値の ID でチャットを入力します。すべてのチャットのメッセージを受け取るには、空欄のままにします。

### Telegram トリガーにクレジットはかかりますか？

いいえ。トリガー自体は無料です。各実行では、実行したノードの分を支払います。
