ゼロから始めるTelegram Botの作り方:初心者向けガイド
Telegramボットの構築は、フレームワークの選択ではなく、BotFatherとAPIトークンから始まります。ここでは、初めてのトークン取得から、常にオンライン状態を保つボットを作るまでの初心者向けの道筋をご紹介します。
Michael Chen小さな店のオーナーは、TelegramのDMで毎日同じ3つの質問を受け取る。発送日数、返品ポリシー、入荷予定日。手動で返信していると、昼前には1時間が消える。友人がボットを作って対応するよう提案する。オーナーはコードを一行も書いたことがない。
良い知らせ:Telegramボットの最初のバージョンには、それほど多くのコードは必要ない。しかも、Telegramのサーバーに直接触れる必要も一切ない。すべては、まさにこのために作られた公式ツールを通じてルーティングされる。
フレームワークより先にBotFatherから始める
すべてのTelegramボットは同じ方法で始まる。@BotFather、つまりTelegram自身がボット作成のために提供するボットとの会話を通じてだ。BotFatherとチャットを開き、/newbotを送信し、表示名を選び、最後に「bot」で終わるユーザー名を決める。BotFatherはすぐにAPIトークンを返してくれる。そのトークンは、Telegramサーバーへのボットのパスワードであり、それを知っている人は誰でもボットを制御できる。だから、サイトの管理者認証情報と同じように扱い、公開グループに貼り付けたり、公開コードリポジトリにコミットしたりしてはいけない。
この時点で、技術的には動作するボットができている。しかし、まだ何もしていない。なぜなら、送信されたメッセージを待ち受けるコードがないからだ。
チュートリアルを選ぶ前に言語を選ぶ
初心者向けガイドのほとんどはPythonをデフォルトとする。コミュニティライブラリが成熟しており、構文が平易な英語に近いからだ。Node.jsは、すでにJavaScriptに慣れている人に適している。特に、ボットが既存のWebアプリと通信する必要がある場合に良い。大規模なチームでは、ボットが大量のトラフィックを処理する必要がある場合にJavaやGoを選ぶこともあるが、最初のプロジェクトの出発点になることはほとんどない。
| 言語 | 標準的なセットアップ時間(目安) | 最適な用途 |
|---|---|---|
| Python | 基本的な返信ボットで30〜60分 | 初めてのボット、迅速なプロトタイプ |
| Node.js / JavaScript | 30〜60分 | すでにJSバックエンドを運用しているチーム |
| Java または Go | 最小限のセットアップで半日以上 | 高トラフィックまたはエンタープライズ向けボット |
注:セットアップ時間は開発者の経験によって大きく異なります。上記の数値は実測ベンチマークではなく、あくまで目安の推定値です。
最初のバージョンでやるべきこと
何もテストせずにすべての機能を作り込もうとする衝動を抑えよう。動作する最初のバージョンは、通常3つの動作をカバーする。/startコマンドに挨拶で応答すること、いくつかの固定キーワードに返信すること、そして認識できないものはすべて人間に転送することだ。最後の部分は、聞こえ以上に重要だ。予期しない入力に対して沈黙するボットは、機能が少ないボットよりもはるかにユーザーをイライラさせる。
/startと/helpに、ボットができることの短いメニューで返信する。- 推測のリストではなく、実際に繰り返し聞かれる質問に関連した少数のキーワードにマッチさせる。
- 何もマッチしない場合は、沈黙ではなく「人間がフォローアップします」というメッセージにフォールバックする。
このループが確実に動作するようになれば、スケジュール投稿、グループ管理コマンド、データベース検索の追加は、再構築ではなく小さなステップになる。
ボットを置く場所
ラップトップ上のコードは、蓋を閉じた瞬間に応答を停止する。継続的に動作させるためのボットには、常時稼働するホストが必要だ。小さなVPS、コンテナプラットフォーム、または受信メッセージに応じて起動するサーバーレス関数などだ。これらの選択肢は、低トラフィックのボットであれば、どれも高額になる必要はない。
| ホスティングオプション | 月額費用(参考価格) | 最適な用途 |
|---|---|---|
| 無料枠のサーバーレス関数 | 軽いトラフィックなら$0 | 単純な返信ボット、テスト |
| 小型VPS | $4〜$10 | 他のバックグラウンドタスクも実行する必要があるボット |
| マネージドコンテナプラットフォーム | $5〜$20 | サーバー管理を減らしたいチーム |
注:価格は大まかな目安であり、プロバイダーや地域によって変動します。固定見積もりではありません。
ボットを特定の国から一貫して見せたい場合(地域テストのため、またはユーザーが地理的に集中しているため)、プロキシマーケットプレイスを通じたレジデンシャル接続は、ホスティング設定と併用して人々が使う選択肢の一つであり、ボットコード自体とは別の話だ。どのホストを選んでも、公式のTelegram Bot APIドキュメントは、初心者向けコマンドを卒業したらブックマークしておく価値のあるリファレンスだ。
公開前の短いチェックリスト
ボットを公開する前にこれらの手順を実行しておけば、初期のサポートに関する頭痛の種のほとんどを回避できる。
- APIトークンは環境変数に保存し、共有したりコミットしたりする可能性のあるコードに直接記述しない。
- 別のアカウントから、
/start、主要なキーワード返信3つ、フォールバックメッセージをテストする。 - ラップトップを閉じた後もボットがオンラインのままであることを、1時間後に別のデバイスから確認する。
- BotFatherを通じてボットの説明とプロフィール写真を設定し、構築途中で放棄されたように見せない。
- フォールバックメッセージが発動したときに誰に通知が行くかを書き留めておき、マッチしなかった質問が空白に消えないようにする。
多くのマーケットプレイスサプライヤーは、TelegramアカウントやSMS認証のリストで、ボットテスト用の確認済み管理者アカウントやSMS認証済み番号も販売している。個人の番号をまだテスト中のボットに紐付けたくない場合に便利だ。ホスティングプロバイダーを比較するのと同じように、価格と納品速度でいくつかのリストを比較してから決めよう。
