私は自分のボットを使って重要なニュースを伝えていますが、チャンネルにsendMessage
を使っているときに次のようなエラーが表示されます。
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
Change Log には、クライアントからチャンネルにメッセージを送信することは不可能であると書かれていますが、それ以外の方法は何ですか?
それで、問題はどのように私のボットをチャンネルに加えるべきですか?
これが私のチャンネルにボットを追加して通知を設定する方法です。
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( "これが動作するかどうかをテスト")をすることができます。
私はそれが役立つことを願っています
今のところ:
ボットをあなたのチャンネルに追加するには:
* Macネイティブテレグラムクライアントのようないくつかのプラットフォームでは、メンバーとしてbotを追加できるように見えるかもしれませんが、結局それは働かないでしょう。
**ボットはあなたの連絡先リストに入っている必要はありません。
正しい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は以前に保存された情報です。
それが役立つことを願っています。