web-dev-qa-db-ja.com

ボットをチャンネルに追加する方法

私は自分のボットを使って重要なニュースを伝えていますが、チャンネルにsendMessageを使っているときに次のようなエラーが表示されます。

{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}

Change Log には、クライアントからチャンネルにメッセージを送信することは不可能であると書かれていますが、それ以外の方法は何ですか?

それで、問題はどのように私のボットをチャンネルに加えるべきですか?

62
user4374121

今ではすべてのクライアントがそれを許可していますが、それはそれほど単純ではありません。
どのTelegramクライアントでも:

  1. オープンチャンネル情報(アプリタイトル)
  2. Administratorsを選択してください
  3. 管理者を追加
  4. 連絡先リストにボットがないので、それを検索する必要があります。ボットのユーザー名を入力してください
  5. それをクリックすると管理者になります。

enter image description here

101
Stas Parshin

これが私のチャンネルにボットを追加して通知を設定する方法です。

  1. チャンネルがパブリックであることを確認してください(後でプライベートに設定できます)。
  2. 管理者を追加する>ボットのユーザー名を入力して管理者にする
  3. あなたのボットはあなたのチャンネルに参加します
  4. チャンネルのURLを次のように設定してチャンネルIDを設定します。

telegram.me/whateverIWantAndAvailable

チャネルIDは@ whateverIWantAndAvailableになります

ここでメッセージを送って通知を送信するようにボットを設定します。

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id=@whateverIWantAndAvailable&text =テスト

ボットが通知するメッセージは次のとおりです。テスト

私は強くメッセージのURLコードをお勧めします

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id=@whateverIWantAndAvailable&text =%20if%20この%20worksのテスト

phpではurlencode( "これがうまくいくかどうかをテストする")を使うことができます。 jsでは、あなたはencodeUIComponent( "これが動作するかどうかをテスト")をすることができます。

私はそれが役立つことを願っています

45
Botirla Sorin

今のところ:

  • ボットを追加できるのはチャンネルの作成者だけです。
  • 他の管理者はチャンネルにボットを追加することはできません。
  • チャンネルはパブリックでもプライベートでもかまいません(関係ありません)
  • ボットは管理者としてのみ追加でき、メンバーには追加できません。

ボットをあなたのチャンネルに追加するには:

  • チャンネル名をクリックしてください: enter image description here

  • 管理者をクリックしてください: enter image description here

  • [管理者を追加]をクリックします。 enter image description here

  • @your_bot_nameのようにあなたのボットを検索し、追加をクリックしてください:** enter image description here

* Macネイティブテレグラムクライアントのようないくつかのプラットフォームでは、メンバーとしてbotを追加できるように見えるかもしれませんが、結局それは働かないでしょう。
**ボットはあなたの連絡先リストに入っている必要はありません。

20
apadana

正しいchat_idを使用していて、「bot」の後にボットのトークンをアドレスに含めていますか? (api.telegram.org/bottoken/sendMessage)

このページ 送信に関するいくつかのことを説明します( "sendMessage"セクションで説明します) - 基本的なことですが、基本を忘れてしまうことがよくあります。

引用する:

SendMessageメソッドを使用するには、適切なchat_idを使用する必要があります。

まず最初に、Telegramクライアントを介して/ startコマンドをボットに送信しましょう。

このコマンドを送った後、getUpdatesコマンドを実行しましょう。

curl -s \
-X POST \ https://api.telegram.org/bot<token>/getUpdates \ | jq .

応答は次のようになります

{   "result": [
     {
       "message": {
        "text": "/start",
         "date": 1435176541,
         "chat": {
           "username": "yourusername",
           "first_name": "yourfirstname",
           "id": 65535
         },
         "from": {
           "username": "yourusername",
           "first_name": "yourfirstname",
           "id": 65535
         },
         "message_id": 1
       },
       "update_id": 714636917
     }    ],   "ok": true }

プロパティresult.message [0] .chat.idに興味があります。他の場所にこの情報を保存してください。

これはほんの一例にすぎないことに注意してください、あなたはそれらの情報を扱うために何らかの自動化を設定したいと思うかもしれません。それは簡単ですこのスニペットをチェックしましょう。

curl -s \
-X POST \ https://api.telegram.org/bot<token>/sendMessage \
-d text="A message from your bot" \
-d chat_id=65535 \ | jq .

Chat_idは以前に保存された情報です。

それが役立つことを願っています。

2
JGR