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

63 telegram telegram-bot

我正在使用我的机器人来讲述重要新闻,但当我使用sendMessage该频道时,我收到以下错误:

{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
Run Code Online (Sandbox Code Playgroud)

更改日志中,他们提到通过客户端无法向频道发送消息,但是另一种方法是什么呢?

那么,问题是,如何将我的机器人添加到频道?

Sta*_*hin 105

现在所有客户都允许这样做,但这并不简单.
在任何Telegram客户端:

  1. 开放频道信息(在应用标题中)
  2. 选择 Administrators
  3. 添加管理员
  4. 联系人列表中没有机器人,因此您需要搜索它.输入机器人的用户名
  5. 单击它,您将其设为管理员.

在此输入图像描述

  • 对于没有用户名的频道,只需给它一个,用机器人发送消息,`sendMessage`的结果应该包括一个chat_id,可以在你删除频道名后使用. (3认同)

小智 49

这就是我在我的频道添加机器人并设置通知的方法:

  1. 确保频道是公开的(您可以稍后将其设为私有)
  2. 添加管理员>键入bot用户名并使其成为管理员
  3. 您的机器人将加入您的频道
  4. 通过设置频道网址来设置频道ID

telegram.me/ whateverIWantAndAvailable

频道ID将是 @whateverIWantAndAvailable

现在设置你的机器人通过在这里发送消息来发送通知:

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @ whateverIWantAndAvailable &text = Test

机器人将通知的消息是:测试

我强烈建议像这样的消息的urlencode

https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable与文本= 测试%20if%20this%20works

在php中你可以使用urlencode("测试这是否有用"); 在js中你可以encodeURIComponent("测试这是否有用");

我希望它有所帮助


apa*_*ana 22

截至目前:

  • 只有频道的创建者才能添加机器人.
  • 其他管理员无法向渠道添加机器人.
  • 频道可以是公共的或私人的(无关紧要)
  • 机器人只能作为管理员而不是成员添加.*

要将僵尸程序添加到您的频道:

  • 点击频道名称: 在此输入图像描述

  • 点击管理员: 在此输入图像描述

  • 点击添加管理员: 在此输入图像描述

  • 搜索像@your_bot_name这样的机器人,然后点击添加:** 在此输入图像描述

*在某些平台,如mac本机电报客户端,它可能看起来像你可以添加机器人作为成员,但最后它将无法正常工作.
**机器人不需要在您的联系人列表中.


小智 5

您是否使用了正确的 chat_id 并在地址中的“bot”之后包含了您的机器人令牌?(api.telegram.org/bot token /sendMessage)

这个页面解释了一些关于发送的事情(在“sendMessage”部分) - 基本的东西,但我经常忘记基本的东西。

报价:

为了使用 sendMessage 方法,我们需要使用正确的 chat_id。

首先,让我们通过 Telegram 客户端向我们的机器人发送 /start 命令。

发送此命令后,让我们执行 getUpdates 命令。

curl -s \
-X POST \ https://api.telegram.org/bot<token>/getUpdates \ | jq .
Run Code Online (Sandbox Code Playgroud)

响应将如下所示

{   "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 }
Run Code Online (Sandbox Code Playgroud)

我们对属性 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 .
Run Code Online (Sandbox Code Playgroud)

其中chat_id是之前保存的那条信息。

我希望这有帮助。