我如何将我的机器人join到频道?
我使用我的机器人来告诉重要的消息,但是当我使用sendMessage
的渠道,我收到下面的错误..
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
好的,在变更日志中,他们提到像是不可能通过客户端,那么另一种方式呢? 所以问题是如何将我的机器人添加到频道?
现在所有的客户都允许这样做,但这并不简单。
在任何电报客户端:
- 打开频道信息(在应用标题中)
- select
Administrators
- 添加pipe理员
- 联系人列表中不会有机器人,所以你需要search它。 input你的机器人的用户名
- 点击它,你做pipe理员。
这就是我如何在我的频道中添加一个机器人并设置通知:
- 确保频道是公开的 (您可以稍后设置)
- 添加pipe理员>input僵尸工具用户名并设为pipe理员
- 你的机器人将join你的频道
- 通过设置频道url来设置频道ID
telegram.me / whateverIWantAndAvailable
频道ID将是@whateverIWantAndAvailable
现在设置你的机器人通过在这里发送消息来发送通知:
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @ whateverIWantAndAvailable &text = Test
bot会通知的消息是: testing
我强烈build议像邮件urlencode
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable &text = testing%20if%20is%20works
在PHP中,你可以使用urlencode(“testing这个工程”); 在JS你可以encodeURIComponent(“testing这是否工作”);
我希望它有帮助
截至目前:
- 只有频道的创build者才可以添加漫游器。
- 其他pipe理员不能将bot添加到频道。
- 频道可以是公共或私人的(无所谓)
- 机器人只能作为pipe理员join,而不是成员。
要将bot添加到您的频道:
-
点击频道名称:
-
点击pipe理员:
-
点击添加pipe理员:
-
像@your_bot_name一样search你的机器人,然后点击添加:**
*在一些平台,如Mac本地电报客户端,它可能看起来像你可以添加机器人作为一个成员,但最终不会工作。
**机器人不需要在您的联系人列表中。
你是否使用了正确的chat_id,并在地址中包含“bot”之后的机器人标记? (api.telegram.org/bot token / sendMessage)
这个页面解释了一些关于发送(在“sendMessage”部分) – 基本的东西,但我经常忘记的基本知识。
去引用:
为了使用sendMessage方法,我们需要使用适当的chat_id。
首先让我们通过电报客户端发送/ 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 }
我们感兴趣的是property.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是之前保存的信息。
我希望有帮助。