メッセージとボタン
**「メッセージを送信」**アクションは、ブロックからボットの返信を構成し、インラインボタン・メインメニュー・ダイアログのステップを追加します。これはコンストラクターで最も機能豊富なアクションであり、ここで変数置換とボタンのリファラルパラメータも設定します。
メッセージブロック
メッセージは複数のブロックの連続で構成されます(ブロックを追加ボタン):
- テキスト — 変数置換とボタン付きのフォーマットされたテキスト(最大 4096 文字)。
- 写真 — キャプション付きの画像。
- ファイル — キャプション付きのドキュメント。
- 遅延 — 次のブロックの前の一時停止(秒単位)。
- AI — プロンプトに基づいてモデルが生成した返信。
- リアクション — 別のリアクションの呼び出し(任意で処理完了を待機)。
ブロックはドラッグ&ドロップで並べ替えられます。ブロックの表示モードは**「順番通り」または「ランダム」(バリエーション返信用)を選択できます。ボットのメインメニューは変更しない**、新たに設定する、非表示にするを選択できます。
ブロックオプション
テキストブロックとメディアブロックにはフラグがあります: 固定、ミュート、転送保護、スポイラー、リンクプレビューなし、N秒後に自動削除。
インラインボタン
ブロック内でボタンを設定できます(ボタンテキスト + タイプ):
- テキスト(callback) — ボット側で押下を処理するボタン。
- リンク — URL を開きます。
- ウェブアプリ — Telegram Mini App を開きます。Mini App を参照。
- リアクションを呼び出す — 押下で別のリアクションを起動します。
- 支払いを受け付けると通知 — 「近日公開」とマークされています。
ボタンのスタイル — 通常・青(Primary)・緑(Success)・赤(Danger)。**「使い捨て」**フラグを設定すると、押下後にボタンが無効になります。
押下時の動作
callback ボタンには、押下時の動作を設定できます: ボタンテキストを置き換える、メッセージを置き換える(テキストまたはリンクされたリアクションの内容で)、メッセージを削除する、answerCallbackQuery をスキップ。押下時にラベルを設定したり****パラメータを設定したりすることもできます。
ボタン内のパラメータ(Carry)
「Carry — ボタン押下時のデータスナップショット」ブロックは、メッセージ送信時に確定した値のセットをボタンに紐付けます。押下時にこれらの値がコンテキストに渡されるため、ボタンが複数あっても各ボタンはそれぞれのパラメータを持ちます(per-invocation)。ペイロードの有効期限を秒単位で設定できます。これは「商品を選ぶ → その商品を注文する」というシナリオの基盤です。
動的ボタン
**「リストからの動的ボタン」**ブロックは、ctx の配列を1要素1ボタンとして展開します。設定項目: ctx 内のリストキー、要素のエイリアス、1行あたりのボタン数、ボタンテンプレート({{alias.field}} をサポート)。これにより、カタログ・レコードリスト・コレクションデータからのメニューを構築できます。詳細は 動的ボタンとパラメータ を参照してください。
期待する返答(ダイアログのステップ)
テキストブロックはユーザーの返答を待つ設定にできます — これによりメッセージがダイアログのステップになり、返答があるまでシナリオが一時停止します。複数のステップを連続させることで、チャット内でアンケートやウィザードを構成できます。
期待するコンテンツの種類
ボットは特定の種類の返答を待つことができます: テキスト、選択肢から選ぶ(選択ボタン)、写真、動画、ビデオノート、音声、ドキュメント、ボイスメッセージ、位置情報、連絡先、カレンダー、またはサイコロ。ユーザーが異なる種類を送信した場合、そのステップは返答を不適切と判断します。
テキストの検証
テキスト返答に対しては、フォーマット検証を有効にできます: 電話番号、メール、URL、日付、時間、またはフォーミュラへの一致(正規表現)。検証を通過しなかった返答は拒否され、ボットはエラーメッセージを表示します。
返答の保存
ユーザーの返答はパラメータに保存できます — その後、変数置換で {{param.key}} として、また条件で利用できます。ダイアログのステップにより、ユーザーのミニプロフィールが構築されます。
エラー・リマインダー・タイムアウト
- 検証エラー時のメッセージ — 返答が検証に失敗した場合に表示する内容。
- リマインダー — ユーザーが無返答の場合に送信する内容。
- タイムアウトによる待機解除 — 何秒後に待機を停止するか。タイムアウト時にはリアクションを起動できます(例: アンケートをやんわりと終了する)。このリアクションはリンクで「待機タイムアウト」として表示され、返答へのリアクションは「期待する返答」として表示されます。
変数置換
**「変数置換」**ボタンで変数を挿入できます: 送信者データ({{first_name}}、{{username}}、{{user_id}})、イベントデータ({{text}}、{{chat_id}}、{{datetime}})、パラメータ({{param.key}})。完全なリストとフォーミュラは 変数置換とフォーミュラ を参照してください。
次のステップ
- 変数置換とフォーミュラ — テキストとボタン内の変数。
- アクション — その他のリアクションアクション。
- Mini App — ウェブアプリボタン。