Contents
2026 年版 BotFather でボットを作成しトークン取得
BotFather は Telegram が提供する公式のボット管理ツールです。この記事では、2024 年末時点で確認できている最新の操作フローに基づき、コマンド入力だけで安全に API トークンを取得する手順を解説します。UI の細かな変化は頻繁に行われるため、公式ヘルプ(/help)や BotFather のメッセージを随時確認すると安心です。
手順概要
- Telegram アプリで BotFather を検索し開始
/newbotと送信して指示に従い、ボット名(日本語可)と ユーザー名(英数字・アンダースコア・末尾はbot必須)を入力- 作成完了メッセージに表示される API トークン をコピー
取得したトークンは、平文でコード内に書かず環境変数やシークレット管理ツールに保存してください。漏洩すると不正利用のリスクが高まります。
Telegram のプライバシーモード確認と解除手順
Telegram ではボットがグループ内で受信できるメッセージを プライバシーモードで制御します。デフォルトは「オン」になっており、メンションやコマンド以外のテキストは無視されます。以下の手順で設定変更が可能です。
手順概要
- BotFather に
/setprivacyと送信 - 対象ボットを選択し 「Disable」 を選ぶ(プライバシーモード OFF)
- グループにボットを再招待すると、すべてのメッセージが取得できるようになる
プライバシーモードをオフにするケースは、自動モデレーションやキーワード検出などリアルタイム処理が必要な場合です。一方、情報漏洩リスクを最小化したいときはオンのままで運用し、メンションベースのやり取りに限定すると安全です。
LLM(大規模言語モデル)選定と API 連携方法
2026 年現在、主要な商用 LLM として OpenAI GPT‑4o、Anthropic Claude 3、Google Gemini 1.5 が広く利用されています。料金体系は頻繁に改訂されるため、必ず公式サイトで最新情報を確認してください。
| 項目 | OpenAI GPT‑4o | Anthropic Claude 3 | Google Gemini 1.5 |
|---|---|---|---|
| 発表時期 | 2024‑10 | 2025‑02 | 2025‑09 |
| 主な特徴 | マルチモーダル対応、低遅延 | 長文コンテキスト(100k トークン) | 高速推論・低コスト、Workspace 連携 |
| 料金 (1M トークン)※ | $0.015(入力)/ $0.06(出力) | $0.018/$0.07 | $0.012/$0.05 |
| 無料トライアル※ | 5 USD クレジット(30 日) | 10 USD クレジット(45 日) | 7 USD クレジット(30 日) |
| API エンドポイント例 | https://api.openai.com/v1/chat/completions |
https://api.anthropic.com/v1/messages |
https://generativelanguage.googleapis.com/v1/models/gemini-1.5-pro:generateContent |
※料金・トライアルは執筆時点の情報です。利用前に各ベンダーのプライシングページをご確認ください。
API キー取得手順(共通)
- 各サービスのコンソールにサインアップ
- 「API キー」または「Access Token」を生成
- 環境変数(例:
OPENAI_API_KEY、ANTHROPIC_API_KEY)として保存
環境変数への格納方法は次節 シークレット管理 で詳しく解説します。
ノーコードプラットフォームで作る AI 管理者ボット
ノーコードツールはプログラミング不要で素早くプロトタイプを構築でき、非エンジニアでも導入しやすい点が魅力です。実績のある以下 2 つのサービスを例に、Telegram ボットと LLM の連携手順を示します。
| プラットフォーム | 特徴 | 主な利用シーン |
|---|---|---|
| n8n (self‑host) | オープンソース・フローエディタ。Webhook や API 呼び出しが自由に組める | 社内向けカスタムモデレーション、社外サービス連携 |
| Make.com(旧 Integromat) | 直感的なビジュアルフローと多数のテンプレートが利用可能。クラウド型で即時稼働 | FAQ 自動応答、定期レポート生成 |
設定フロー(共通)
- プロジェクト作成 → テンプレート「Telegram 管理者ボット」または空白から新規フローを開始
- Webhook URL の取得:n8n では
https://<your-domain>/webhook/telegram、Make.com でも自動生成された URL を確認 - BotFather に
/setwebhook <URL>を送信し、Telegram と接続 - AI API 接続:環境変数で取得した LLM のキーを「API 認証」ノードに貼り付けるだけで利用可能
- コマンド定義(例)
/moderate <テキスト>→ AI に送信し NG 判定結果を返信/faq <質問>→ 事前登録した Q&A データベースから回答
メリット・デメリット比較
| 項目 | メリット | デメリット |
|---|---|---|
| 開発速度 | UI 操作だけで数時間で完了 | 複雑なロジックはコード実装に比べ制限あり |
| 保守性 | ベンダー側のアップデートが自動適用 | サービス停止リスク(SLA 確認必須) |
| コスト | 無料プランで月間 10k リクエストまで利用可 | 有料プランは使用量に応じて課金 |
シークレット管理と環境変数のベストプラクティス
ボット運用で最も重要なのは 認証情報の安全な保管です。以下のポイントを守ることで、トークン漏洩や不正アクセスのリスクを大幅に低減できます。
- 環境変数に一元管理
- Docker コンテナ・Heroku・Railway いずれも「Config Vars」や「Variables」画面でキーとバリューを設定。コード内には絶対に書かない。
- シークレットマネージャの活用(AWS Secrets Manager、Google Secret Manager 等)
- 高度なローテーション機能とアクセス制御が利用できるため、大規模運用時は必須。
- Git リポジトリから除外
.gitignoreに.envファイルを追加し、コミット履歴に認証情報が残らないようにする。
まとめ:環境変数は「実行時」にだけ注入し、永続的な平文保存は避けましょう。
Python と python‑telegram‑bot で実装する手順
エンジニア向けには公式ライブラリ python-telegram-bot v21 が最も安定しています。以下に、環境変数から取得したトークンと LLM キーを使用したシンプルなボット例を示します。
コード全体像
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import os from telegram import Update, BotCommand from telegram.ext import ( ApplicationBuilder, CommandHandler, MessageHandler, filters, ) # 1️⃣ 環境変数から認証情報取得 BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN") OPENAI_KEY = os.getenv("OPENAI_API_KEY") app = ApplicationBuilder().token(BOT_TOKEN).build() # 2️⃣ OpenAI 呼び出し(非同期版) async def call_gpt(prompt: str) -> str: import openai openai.api_key = OPENAI_KEY resp = await openai.ChatCompletion.acreate( model="gpt-4o-mini", messages=[{"role": "user", "content": prompt}], max_tokens=500, ) return resp.choices[0].message.content.strip() # 3️⃣ /moderate コマンド実装 async def moderate(update: Update, context): if not context.args: await update.message.reply_text("判定したいテキストを入力してください。") return text = " ".join(context.args) result = await call_gpt( f"以下のメッセージがガイドライン違反か判定してください:\n{text}" ) await update.message.reply_text(result) # 4️⃣ /faq コマンド実装(簡易辞書使用) FAQ_DB = { "営業時間": "平日 9:00〜18:00です。", "サポート方法": "公式サイトの問い合わせフォームをご利用ください。", } async def faq(update: Update, context): query = " ".join(context.args).strip() answer = FAQ_DB.get(query, "該当情報がありません。") await update.message.reply_text(answer) # 5️⃣ メッセージ要約ハンドラ async def summarize(update: Update, context): summary = await call_gpt( f"次の会話を200字以内で要約してください:\n{update.message.text}" ) await update.message.reply_text(summary) # 6️⃣ ハンドラ登録 app.add_handler(CommandHandler("moderate", moderate)) app.add_handler(CommandHandler("faq", faq)) app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, summarize)) if __name__ == "__main__": app.run_polling() |
実装上のポイント
| ポイント | 内容 |
|---|---|
| 非同期 API 呼び出し | acreate を使うことで応答待ち時間を短縮 |
| 例外処理 | 本番環境では try/except で OpenAI エラーやタイムアウトをハンドリング |
| Docker 化 | 上記コードは Dockerfile に python-telegram-bot と openai をインストールすればそのままコンテナ化可能 |
デプロイと運用 ― Heroku・Railway・Docker(セルフホスト)での安全対策
ボットを常時稼働させるには、信頼できるホスティング環境と TLS 必須の Webhook が不可欠です。以下は主要プラットフォーム別の設定手順です。
環境変数管理(共通)
| プラットフォーム | 設定手順 |
|---|---|
| Heroku | Dashboard → 「Settings」→「Config Vars」に TELEGRAM_BOT_TOKEN、OPENAI_API_KEY などを追加 |
| Railway | プロジェクト画面左側の「Variables」タブでキー/バリューを登録。自動的にコンテナへ注入されます |
| Docker(セルフホスト) | docker run -e TELEGRAM_BOT_TOKEN=... -e OPENAI_API_KEY=... your-image もしくは docker-compose.yml の environment: に記載 |
デプロイ例:Railway
- GitHub リポジトリを Railway に接続
- ビルドコマンドに
pip install -r requirements.txt && python bot.pyを設定 - 環境変数タブで先述のキーを登録 → デプロイが自動実行
Telegram の IP 範囲(アクセス制御)
Telegram が公式に公開している IP アドレス範囲は 149.154.160.0/20 ですが、追加のサーバーや CDN が利用されることがあります。最新情報は Telegram の公式ドキュメントを参照し、ファイアウォールで「この範囲のみ許可」する設定を推奨します。
セキュリティチェックリスト
- トークンは環境変数またはシークレットマネージャに保存し、コードベースにハードコーディングしない
- HTTPS(TLS)経由の Webhook を必ず使用。Telegram は TLS で保護されたエンドポイントしか受け付けません
- プライバシーポリシーを明示:取得したメッセージは AI 解析以外に保存しない旨をユーザーへ提示
- ログローテーション:アクセス・エラーログは 30 日以内に自動削除、または外部 SIEM に転送
まとめ
- BotFather の最新操作は公式メッセージに従い、トークンは環境変数で安全管理する
- プライバシーモードは用途に応じてオン/オフを切り替えるだけで柔軟に運用可能
- LLM は料金や機能が頻繁に変わるため、公式プライシングページを定期的に確認する
- ノーコードツール(n8n・Make.com)で素早くプロトタイプ作成し、要件が高度になる場合は Python コードへ移行
- デプロイ先は Heroku、Railway、Docker など好きな環境を選び、シークレット管理と TLS を徹底
これらの手順とベストプラクティスを守れば、安全・拡張性に優れた AI 管理者ボットを本番運用できるはずです。ぜひ実装に挑戦してみてください。