我想与一个机器人交互,该机器人获取聊天ID和消息ID并根据该聊天ID的消息进行回复。
通常,我在群聊中使用KeyboardButtonUrl
具有指向带有数据的机器人的链接(例如,这里是键盘按钮URL后面的URL,https://t.me/SomeBot?start=-1001234567890_654321
(与机器人进行交互。我单击直接打开与机器人聊天的按钮,然后单击"开始"按钮,将命令发送给机器人(我认为机器人从具有聊天ID和消息ID的传递数据中获取消息(。
使用send_message
函数发送消息"-1001234567890_654321"无法按预期工作。 我如何使用电视马拉松实现这一目标?
此外,在电视马拉松文档中搜索后,我找不到任何在获取消息 ID 和聊天 ID 后返回特定消息的函数。get_messages
&iter_messages
返回指定编号。仅最后的消息。
您可以使用@oleskii的方法,但您也可以发送如下消息:
client.send_message('bot username', '/start params_string')
看起来您想使用参数启动机器人。
请参考以下内容: 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)
该请求的工作方式与以下链接的工作方式相同:
https://t.me/bot_username_bot?start=params_string
希望对您有所帮助!祝你好运!
我找不到任何在获取消息 ID 和聊天 ID 后返回特定消息的函数
客户端get_messages
方法提供一个指定消息 ID 或 ID 列表的ids
参数。
message = await client.get_messages(chat_id, ids=message_id)
返回消息对象(如果给定 ID 存在(或返回None
ids = [message_id_1, message_id_2, message_id_3, ...]
messages = await client.get_messages(chat_id, ids=ids)
返回具有给定 ID 的消息对象列表的总列表。如果 ID 不存在,则将None
列表项。
在此处查看get_messages文档