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

时间:2015-10-14 13:30:15

标签: telegram telegram-bot

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

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

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

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

4 个答案:

答案 0 :(得分:99)

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

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

答案 1 :(得分:44)

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

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

    telegram.me/的 whateverIWantAndAvailable

    频道ID将是 的 @whateverIWantAndAvailable

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

    https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable &安培;文本= <强>测试

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

    我强烈建议使用

    这样的邮件的urlencode

    https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable &安培;文本= <强>测试%20if%20this%20works

    在php中你可以使用urlencode(“测试一下这是否有效”); 在js中你可以encodeURIComponent(“测试这是否有用”);

    我希望它有所帮助

答案 2 :(得分:20)

截至目前:

  • 只有频道的创建者才能添加机器人。
  • 其他管理员无法为频道添加漫游。
  • 频道可以是公开的或私密的(无所谓)
  • 机器人只能作为管理员添加,而不能添加成员。*

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

  • 点击频道名称: enter image description here

  • 点击管理员: enter image description here

  • 点击添加管理员: enter image description here

  • 搜索您的机器人,如@your_bot_name,然后点击添加:** enter image description here

*在某些平台上,比如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是之前保存的信息。

我希望有所帮助。