TGbot — Telegram 双方向転送ボット(Cloudflare Worker)
概要
TGbot は Cloudflare Worker と KV(Key-Value)を用いて構築された Telegram ボットのテンプレートで、ユーザーの個別チャットと管理者側のグループ(フォーラムトピック)を双方向で中継することを目的としています。新規ユーザー向けの人間確認(Captcha)や、ユーザー名・ID を反映したトピック名の動的更新、メッセージ編集の差分通知、管理者によるワンクリックのブロック/解除、キーワード検出による自動封禁と自動応答といった自動化機能を備え、少人数運用から大規模なサポート運営まで対応しやすい設計です。エッジ実行により応答性が高く、導入も比較的容易です。
リポジトリの統計情報
- スター数: 15
- フォーク数: 6
- ウォッチャー数: 15
- コミット数: 9
- ファイル数: 2
- メインの言語: JavaScript
主な特徴
- 私聊(DM)と管理者グループ(フォーラムトピック)の双方向中継
- Captcha による人間確認と自動ブロック機能、キーワードによる自動封禁
- トピック名の動的生成・更新と編集メッセージの差分通知
- 管理者向けインラインボタンでワンクリックの遮断/解除および自動応答設定
技術的なポイント
TGbot は Cloudflare Workers 上で動く JavaScript 実装で、KV ストレージに会話状態やユーザー→トピックのマッピング、ブロックリスト、キーワード設定を保持します。Telegram Bot API からの webhook(もしくは getUpdates)で受け取った更新を解析し、プライベートメッセージを該当する管理者フォーラムのトピックに転送、管理者の返信はユーザー ID に基づいて逆中継します。人間確認は簡易な問答方式で実装され、未承認ユーザーは KV に検証フラグが立つまで制限されます。編集メッセージは before/after を検出して管理者側に通知し、追跡可能にします。インラインキーボードのコールバックを用いて管理者がトピックカード上から即時にブロック/解除を行える設計で、キーワードリストとしきい値によりスパム判定・自動封禁を実行します。Cloudflare Workers のエッジ特性により低レイテンシでスケーラブルですが、KV の最終整合性や読み取り遅延には注意が必要で、強整合性が必要な場合は Durable Objects など別手段の検討が推奨されます。運用面では Bot トークン等を環境変数に安全に格納すること、レート制限・ログ出力・エラーハンドリングの強化が実用化の鍵です。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- worker.js: file
worker.js がボットの本体で、Webhook の受信、Telegram API への送信、KV による状態管理、Captcha ロジック、コールバック処理、編集通知など主要機能を実装しています。README.md は導入手順、設定項目(Bot Token、KV 名、管理者グループID など)、デプロイ方法(Cloudflare Workers)と機能説明を含みます。
まとめ
Cloudflare Workers で軽量に動く、実運用向けの Telegram 双方向中継ボットです。利便性の高い自動化機能が揃っています。
リポジトリ情報:
- 名前: TGbot
- 説明: * Telegram 双向机器人 Cloudflare Worker * 实现了:人机验证、私聊到话题模式的转发、管理员回复中继、话题名动态更新、已编辑消息处理、用户屏蔽功能、关键词自动回复
- スター数: 15
- 言語: JavaScript
- URL: https://github.com/moistrr/TGbot
- オーナー: moistrr
- アバター: https://avatars.githubusercontent.com/u/178376940?v=4