在电报上发送消息:“禁止:bot 不是超级群聊天的成员”或“禁止:bot 不是频道聊天的成员”

时间:2021-01-16 18:03:22

标签: telegram telegram-bot python-telegram-bot

我正在尝试通过电报聊天发送消息。 我希望电报设置只能通过官方用户界面完成,因为我希望它可能由最终用户完成。

这是我做的电报设置:

  • 我通过获取令牌与 Botfather 创建了机器人 XXXXXXX_bot:没问题
  • 我创建了一个频道:
    • 点击“新频道”
    • 频道名称:TestChannel
    • 点击“下一步”
    • 选择“私人频道”
    • 点击“保存”
    • 添加我的机器人 XXXXXXX_bot
    • 点击“设为管理员”
    • 点击“保存”
  • 我创建了聊天:
    • 打开频道TestChannel
    • 在频道菜单上,选择“管理频道”
    • 在讨论中点击“添加群组”
    • 点击“创建新群组”
    • 组名:TestChannelChat
    • 点击“创建”
    • 点击“保存”
  • 我将机器人添加到新组:
    • 打开群组TestChannelChat
    • 在右侧面板上,我点击“添加成员”
    • 添加我的机器人 XXXXXXX_bot
    • 点击“添加”
    • 右键单击聊天中新添加的用户,然后选择“晋升为管理员”
    • 点击“保存”

这是频道管理员的设置:

enter image description here

归根结底,电报用户界面中的聊天/群组设置如下:

enter image description here

我进行了以下 http 调用:

GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannelChat&text=coucou

这给了我以下答案:

{
  "ok": false,
  "error_code": 403,
  "description": "Forbidden: bot is not a member of the supergroup chat"
}

我还做了以下(绕过实际聊天,直接在频道发布消息):

GET https://api.telegram.org/botXXXXXXTOKENXXXXXXX/sendMessage?chat_id=@TestChannel&text=coucou

这给了我以下答案:

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

一个简单的问题,因为机器人也用于广播消息,我缺少它的哪一部分设置?

1 个答案:

答案 0 :(得分:1)

您正处于使用 Telegram 机器人的正确轨道上。但首先要了解 chat_id

chat_id 是聊天的 用户名id。您只能为公共聊天/群组设置用户名。在您的情况下,您有一个私人组并且没有用户名。您传递的 chat_id 的值 @TestChannelChat 不属于您的聊天。您必须传递聊天的 id 或设置一个公共用户名并传递它。

如果您不知道如何查看聊天的 id,请阅读此处:https://stackoverflow.com/a/38388851/10359385

相关问题