如何使用 telethon 通过 link 发送消息然后启动机器人?

How to send message followed by start to a bot by link using telethon?

我想与一个获取聊天 ID 和消息 ID 并根据该聊天 ID 的消息进行回复的机器人进行交互。

通常我在群聊中使用 KeyboardButtonUrl 与机器人互动,其中 link(例如,这里是 KeyboardButtonUrl 后面的 url,https://t.me/SomeBot?start=-1001234567890_654321)数据。我单击直接打开与机器人聊天的按钮并单击“开始”按钮,将命令发送到机器人(我认为机器人从具有聊天 ID 和消息 ID 的传递数据中获取消息)。

使用 send_message 函数发送消息“-1001234567890_654321”没有按预期工作。 如何使用 telethon 实现此目的?

此外,在 telethon docs 中搜索后,在获取消息 ID 和聊天 ID 后,我找不到任何 returns 特定消息的功能。 get_messages & iter_messages returns 指定没有。仅最后一条消息。

您似乎想启动带有参数的机器人。

请参考以下内容: https://tl.telethon.dev/methods/messages/start_bot.html

您可以根据您的需要调整此示例:

from telethon.tl.functions.messages import StartBotRequest

request = StartBotRequest("bot_username_bot", "bot_username_bot", "params_string")
result = await client(request)

请求的工作方式与以下 link 相同:

https://t.me/bot_username_bot?start=params_string

希望对您有所帮助!祝你好运!

您可以使用@oleskii 的方法,但您也可以像这样发送消息:

client.send_message('bot username', '/start params_string')

I could not find any function which returns a particular message after taking message id and chat id

客户端 get_messages 方法给出一个 ids 参数,指定消息 ID 或 ID 列表。

message = await client.get_messages(chat_id, ids=message_id)

return 消息对象,如果给定的 id 存在或 return None


ids = [message_id_1, message_id_2, message_id_3, ...]

messages = await client.get_messages(chat_id, ids=ids)

return total list 个具有给定 ID 列表的消息对象。如果 id 不存在,列表项将是 None

see the get_messages documentation here