Telegramボットの作り方とチャンネルへの追加方法
@BotFatherでボットを作り、投稿できる管理者としてTelegramチャンネルに追加します。トークンの守り方、テスト投稿、投稿が届かないときの直し方も説明します。
Telegramチャンネルにボットを追加するには、ボットをチャンネルの管理者にします。チャンネル情報を開いて管理者を追加し、ボットのユーザー名を検索して、メッセージを投稿する権限(Post messages)をオンにします。自分のボットが必要なら、先に@BotFatherで作成し、発行されたトークンを保管しておきます。本番で使う前に、テスト投稿を1件送ってください。
このガイドでは、ボット、トークン、権限、テスト投稿、問題の直し方を扱います。ボットのプログラムの書き方は扱いません。Studioをはじめ、自分のボットを通じて投稿するツールには、どれもこれと同じ設定が必要です。投稿のタイミングや予約投稿の失敗については、Telegramの予約投稿ガイドを参照してください。
チャンネルでボットができること
ボットは、電話番号のいらない特別なTelegramアカウントです。トークンを持っている人なら誰でも、ボットに投稿させることができます。
ボットはチャンネルの購読者にはなれず、管理者としてだけ参加できます。投稿はボットに与える権限の一つで、ボットの投稿はチャンネル名で表示されます。
このガイドの例は架空のものです。ある陶芸工房が公開チャンネル「Harbor Street Pottery」を運営していて、窯焼きの予定をボットで投稿したいと考えています。
@BotFatherでボットを作る
手順はTelegramのBotFatherのガイドに書かれています。
- Telegramで@BotFatherを開きます。綴りが正確か確認してください。
/newbotを送信します。- 名前を入力します。名前はあとで変更できます。
- ユーザー名を入力します。半角英数字とアンダースコアを使った5〜32文字で、末尾は「bot」にします。ユーザー名はあとから変更できません。
- 返信に含まれるトークンをコピーします。トークンは
123456789:AAF…のような形をしています。
工房はボットの名前を「Harbor Pottery Poster」、ユーザー名を@harbor_pottery_poster_botにしました。名前は、管理者の一覧でチームのメンバーが見分けられるものにしましょう。
ボットのトークンを安全に保管する
Telegramは、トークンを持っている人なら誰でもボットを操作できると注意しています。トークンはパスワードと同じように扱ってください。
- パスワードマネージャーに保存する。
- 接続するツールにだけ貼り付ける。
- スクリーンショット、チャット、問い合わせのチケット、共有ドキュメントに載せない。
- ほかの人が投稿できるようにトークンを渡さない。代わりに、投稿ツールでアクセス権を与える(SNSアカウントをチームで共有する方法を参照)。
トークンが漏れたら、@BotFatherで無効にします。ボットの設定は/mybotsで開けます。新しいトークンが発行され、古いトークンは使えなくなるので、古いトークンを使っていたツールをすべて更新してください。
例では、工房のオーナーがうっかりトークンを共有ドキュメントに貼り付けてしまいます。そこでトークンを無効にし、新しいトークンでツールを接続し直します。
ボットを管理者としてチャンネルに追加する
チャンネル情報を開き、管理者の一覧に進みます。アプリによってはチャンネルの管理メニュー(Manage Channel)の中にあり、表記もアプリごとに異なります。管理者の追加を選び、ボットのユーザー名を検索します。
次に、どの管理者権限を与えるかを聞かれます。ツールに必要なものだけをオンにして、保存します。
| 権限 | できること | 投稿用のボットに必要か |
|---|---|---|
| メッセージの投稿(Post messages) | チャンネルとして投稿し、自分が送った最近の投稿を削除する | はい、必須 |
| メッセージの編集(Edit messages) | 投稿を固定し、ボットが送っていない投稿を編集する | ツールが必要とする場合のみ |
| メッセージの削除(Delete messages) | ボットが送っていない投稿を削除する | ツールが必要とする場合のみ |
| チャンネル情報の変更、ユーザーの招待、管理者の追加(Change channel info, invite users, add admins) | チャンネルそのものを運営する | いいえ |
Harbor Street Potteryのボットには、メッセージの投稿の権限だけを与えます。
グループの場合は、ボットを通常のメンバーとして追加します。ボットは自分の名前で投稿し、グループがメンバーのメッセージ送信を制限している場合にだけ、管理者権限が必要になります。
テスト投稿を送って確認する
接続したツールから、テストだとはっきり分かる短いメッセージを送ります。たとえば「テスト:窯焼き予定の投稿です。無視してください」のような内容です。購読者に見える可能性があるので、当たり障りのない内容にします。そのうえで、次の点を確認します。
- 似た名前の別のチャンネルではなく、正しいチャンネルに表示されている。
- チャンネル名で表示されている(例ではHarbor Street Pottery)。
- リンクや写真を投稿する予定なら、それらが想定どおりに表示される。
テストが終わったら削除します。チャンネルで投稿を削除すると、すべての購読者の画面から消えます。
投稿できないボットを直す
| 起きていること | 対処 |
|---|---|
| ボットを購読者として追加できない | メッセージの投稿の権限を付けて、管理者として追加する |
| ボットは管理者なのに、何も届かない | 権限の中でメッセージの投稿をオンにする |
| ツールがトークンを受け付けない | もう一度コピーするか、無効にした場合は新しいトークンを使う |
| 投稿できていたのに止まった | トークン、管理者の一覧、ボットの権限を確認する |
| 投稿が別のチャットに届いた | ツールを正しいチャンネルに接続し直す |
設定に問題がないのに予約投稿が届かなかった場合は、予約投稿の失敗チェックリストを使ってください。
Studioでは、Telegramの接続は3ステップです。@BotFatherでボットを作り、トークンを貼り付けて(Studioがトークンを確認し、ボットの名前を表示します)、チャンネルに追加するボタン(Add to a channel)を押します。するとTelegram自身の選択画面で、メッセージの投稿、編集、削除ができる管理者としてボットが追加され、チャンネルは自動でStudioに表示されます。グループを接続するときは、代わりにグループを使う選択肢(Use a group instead)を選びます。トークンが使えなくなった場合は、そのアカウントに再接続のボタン(Reconnect)が表示されます。再接続では、新しいトークンで同じ手順をたどります。Studioはまだ利用できませんが、ウェイトリストに登録できます。
