TGbot — Telegram 双方向転送ボット(Cloudflare Worker)

Tool

概要

TGbot は Cloudflare Worker と KV(Key-Value)を用いて構築された Telegram ボットのテンプレートで、ユーザーの個別チャットと管理者側のグループ(フォーラムトピック)を双方向で中継することを目的としています。新規ユーザー向けの人間確認(Captcha)や、ユーザー名・ID を反映したトピック名の動的更新、メッセージ編集の差分通知、管理者によるワンクリックのブロック/解除、キーワード検出による自動封禁と自動応答といった自動化機能を備え、少人数運用から大規模なサポート運営まで対応しやすい設計です。エッジ実行により応答性が高く、導入も比較的容易です。

GitHub

リポジトリの統計情報

  • スター数: 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 双方向中継ボットです。利便性の高い自動化機能が揃っています。

リポジトリ情報: