我使用机器人来讲述重要新闻,但当我使用sendMessage
到频道时,我收到以下错误:
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
在Change Log中,他们提到通过客户端无法向频道发送消息,但是另一种方法是什么?
所以,问题是,如何将我的机器人添加到频道?
答案 0 :(得分:99)
现在所有客户都允许这样做,但这并不简单 在任何电报客户端:
答案 1 :(得分:44)
这就是我在我的频道添加机器人并设置通知的方式:
telegram.me/的 whateverIWantAndAvailable 强>
频道ID将是 的 @whateverIWantAndAvailable 强>
现在设置您的机器人通过在这里发送消息来发送通知:
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id=的 @whateverIWantAndAvailable 强>&安培;文本= <强>测试强>
机器人将通知的消息是:测试
我强烈建议使用
这样的邮件的urlencodehttps://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id=的 @whateverIWantAndAvailable 强>&安培;文本= <强>测试%20if%20this%20works 强>
在php中你可以使用urlencode(“测试一下这是否有效”); 在js中你可以encodeURIComponent(“测试这是否有用”);
我希望它有所帮助
答案 2 :(得分:20)
截至目前:
要将僵尸程序添加到您的频道:
*在某些平台上,比如mac本地电报客户端,它可能看起来像你可以添加机器人作为成员,但最后它不会工作。
**机器人不需要在您的联系人列表中。
答案 3 :(得分:2)
您是否使用了正确的chat_id,并在&#34; bot&#34;之后包含了您的机器人令牌?在地址? (api.telegram.org/bottoken/sendMessage)
This page解释了一些关于发送的信息(在#34; sendMessage&#34;部分) - 基本的东西,但我经常忘记基础知识。
引用:
为了使用sendMessage方法,我们需要使用正确的 chat_id。
首先,让我们通过a将/ 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,save感兴趣 其他地方的这些信息。
请注意,这只是一个示例,您可能需要设置一些 处理这些信息的自动现在我们如何发送消息 ?很简单,让我们查看这个片段。
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是之前保存的信息。
我希望有所帮助。