Skip to main content

Telegram

ShanoneのTelegram連携は、メッセージの送信・管理、チャット/グループの管理、メンバーのモデレーション、ボット自体の設定を行う38個のツールをエージェントに提供します——独自のボットコードを書く代わりに、エージェント経由でTelegramボットの日常的な動作を運用できます。

はじめに

1

BotFatherでボットを作成する

Telegramで@BotFatherにメッセージを送り、/newbotを実行して案内に従うと、Bot Tokenが取得できます。
2

ShanoneでBot Tokenを接続する

エージェントにTelegram関連の作業を依頼(例: 「このチャットにメッセージを送って」)するか、Shanoneダッシュボードの連携からBot Tokenを事前に登録しておきます。
3

リクエストを再実行する

接続が完了すると、telegram_*ツールに対するshanone_execute_tool呼び出しが成功するようになります。操作対象のチャット/グループには、事前にボットがメンバーとして参加している必要があります。

利用可能なツール

ShanoneはTelegram向けに38個のツールを、以下のカテゴリに整理して提供しています。
telegram_send_message, telegram_forward_message, telegram_edit_message, telegram_delete_message, telegram_pin_message, telegram_unpin_message, telegram_unpin_all_messages, telegram_get_updates, telegram_copy_message
telegram_get_chat, telegram_get_chat_member_count, telegram_get_chat_member, telegram_get_chat_administrators, telegram_leave_chat, telegram_set_chat_title, telegram_set_chat_description, telegram_export_chat_invite_link, telegram_set_chat_photo, telegram_delete_chat_photo
telegram_get_user_profile_photos, telegram_ban_chat_member, telegram_unban_chat_member, telegram_restrict_chat_member, telegram_promote_chat_member, telegram_set_chat_administrator_custom_title
telegram_get_me, telegram_set_my_commands, telegram_get_my_commands, telegram_delete_my_commands, telegram_set_my_name, telegram_get_my_name, telegram_set_my_description, telegram_get_my_description, telegram_set_my_short_description, telegram_get_my_short_description
telegram_set_webhook, telegram_delete_webhook, telegram_get_webhook_info

よくあるユースケース

通知ボット

ワークフローが完了したときに、チャネルやグループにアラートやレポートを送信する

コミュニティのモデレーション

問題行動のあるメンバーをBanまたは制限し、モデレーション通知をピン留めする

グループの告知

何かが変わったときにチャットのタイトル/説明を更新し、告知をピン留めする

ボットの自己設定

新しい機能が追加されたときに、ボットのコマンド一覧や説明を更新する

トラブルシューティング

ボットは対象のチャット/グループ/チャネルにメンバーとして(モデレーション操作の場合は多くの場合管理者として)追加されている必要があります——有効なトークンだけでは任意のチャットへのアクセス権は得られません。
これらの操作には、そのチャットでボットが該当する管理者権限(例: 「ユーザーのBan」や「新しい管理者の追加」)を持っている必要があります——チャットの設定でボットの管理者権限を確認してください。
telegram_set_webhookでWebhookが既に設定されている場合、Telegramはポーリング方式のtelegram_get_updatesによる更新配信を停止します——ポーリングに戻したい場合は、まずtelegram_delete_webhookを呼び出してください。