我如何将我的机器人join到频道?

我使用我的机器人来告诉重要的消息,但是当我使用sendMessage的渠道,我收到下面的错误..

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

好的,在变更日志中,他们提到像是不可能通过客户端,那么另一种方式呢? 所以问题是如何将我的机器人添加到频道?

现在所有的客户都允许这样做,但这并不简单。
在任何电报客户端:

  1. 打开频道信息(在应用标题中)
  2. selectAdministrators
  3. 添加pipe理员
  4. 联系人列表中不会有机器人,所以你需要search它。 input你的机器人的用户名
  5. 点击它,你做pipe理员。

在这里输入图像说明

这就是我如何在我的频道中添加一个机器人并设置通知:

  1. 确保频道是公开的 (您可以稍后设置)
  2. 添加pipe理员>input僵尸工具用户名并设为pipe理员
  3. 你的机器人将join你的频道
  4. 通过设置频道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是之前保存的信息。

我希望有帮助。