我正在使用我的漫游器来告知重要新闻,但是当我使用sendMessage
该频道时,出现以下错误:
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
他们在变更日志中提到无法通过客户端将消息发送到通道,但是还有另一种方法吗?
所以,问题是,如何将我的机器人添加到频道中?
我正在使用我的漫游器来告知重要新闻,但是当我使用sendMessage
该频道时,出现以下错误:
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
他们在变更日志中提到无法通过客户端将消息发送到通道,但是还有另一种方法吗?
所以,问题是,如何将我的机器人添加到频道中?
Answers:
sendMessage
应包含chat_id,删除频道名称后即可使用。
这是我向频道添加漫游器并设置通知的方式:
telegram.me/随便什么
频道ID为 @whateverIWantAndAvailable
现在将您的机器人设置为通过在此处推送消息来发送通知:
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @ whateverIWantAndAvailable&text =测试
机器人将通知的消息是:测试
我强烈建议该消息的urlencode
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable与文本=测试%20if%20this%20works
在php中,您可以使用urlencode(“测试是否可行”); 在js中,您可以编码URIComponent(“测试是否可行”);
希望对您有所帮助
您是否使用了正确的chat_id,并在地址中的“机器人”之后添加了机器人的令牌?(api.telegram.org/bot令牌/ 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是之前保存的信息。
希望对您有所帮助。