无法在Telegram Bot API中“发送消息”

2024-10-01 11:37:29 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当我试图从bot向整个频道或我自己发送消息时,我收到一个错误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的渠道或用户名或两者兼而有之。这三个电话都是正确的吗?意思是我用来聊天的格式是正确的吗?在

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


Tags: 方法textsendapiid消息messagemy
2条回答

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

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

还要记住,在@后面的应该是channel用户名,而不是标题。在

当向频道发送消息时,我认为用频道id发送消息最简单。。。 有几种方法可以获得频道id

  1. 如果bot是频道中的管理员(转到“add admin…”并搜索您的bot以添加它),那么在频道中发送的任何消息,bot都可以看到它,并且在每条消息中都有发送者的id,如果它在频道中,则为channel id。。。在
  2. 使用这个机器人@ChannelIdBot。。。虽然机器人仍然需要作为管理员在频道中,为了发送消息。。。在

相关问题 更多 >