【问题标题】:Cannot "send_message" in Telegram Bot API无法在 Telegram Bot API 中“发送消息”
【发布时间】:2016-02-23 16:43:57
【问题描述】:

在我自己的库中,我尝试使用来自 Telegram Bot API 的 "sendMessage" API 方法发送消息。我创建了一个名为“my_channel123”的频道,我的用户名为“my_username123”。所以我是频道的管理员,也是唯一的用户。

当我尝试从机器人向整个频道或我自己发送消息时,我收到错误 Bad request 400。以下是我尝试这样做的方法:

my_bot.send_message(chat_id="@my_channel123", text="tetfdsfd")

# or
my_bot.send_message(chat_id="@my_channel123my_username123", text= "tetfdsfd")

# or
my_bot.send_message(chat_id="@my_username123", text="tetfdsfd")

我认为错误出在频道 ID 或用户名或两者的格式中。所有这 3 个调用都正确吗,这意味着我用于 chat_id 的格式是否正确?

请注意,最可能的情况是聊天的 id 或 user_name(或者更确切地说是格式)或其他东西因为我的库中的其他 post 和 get 方法正常工作。

【问题讨论】:

    标签: python api telegram telegram-bot


    【解决方案1】:

    您必须先将机器人添加为频道的管理员,然后它才能向频道发送消息。完成此操作后,您的第一行应该可以工作:

    my_bot.send_message(chat_id="@my_channel123", text="tetfdsfd")
    

    还要记住,@ 后面的内容应该是频道用户名,而不是标题。

    【讨论】:

      【解决方案2】:

      当向频道发送消息时,我认为使用频道 ID 发送消息最容易... 有几种方法可以获取频道 ID

      1. 如果机器人是频道中的管理员(转到“添加管理员...”并搜索您的机器人以添加它),那么在频道中发送的任何消息,机器人都可以看到它,并且在每条消息中都有一个发送者的 id,如果它在一个频道中,它的频道 id...
      2. 使用此机器人@ChannelIdBot...虽然机器人仍需要以管理员身份在频道中,才能发送消息...

      【讨论】:

        猜你喜欢
        • 2016-05-09
        • 1970-01-01
        • 2019-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-17
        • 2018-02-13
        • 1970-01-01
        相关资源
        最近更新 更多