Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让python机器人单击电报机器人中的按钮_Python_Telegram_Telethon - Fatal编程技术网

如何让python机器人单击电报机器人中的按钮

如何让python机器人单击电报机器人中的按钮,python,telegram,telethon,Python,Telegram,Telethon,我想做一个机器人点击电报。问题是我很困惑我是如何用我的代码点击它的,我试过了,但还是失败了,机器人没有点击,应该发布什么数据,以便机器人点击电报机器人。我需要你的帮助。这是我的源代码: from telethon import TelegramClient, events, sync from telethon.tl.functions.messages import GetHistoryRequest, GetBotCallbackAnswerRequest api_id = 974119

我想做一个机器人点击电报。问题是我很困惑我是如何用我的代码点击它的,我试过了,但还是失败了,机器人没有点击,应该发布什么数据,以便机器人点击电报机器人。我需要你的帮助。这是我的源代码:

from telethon import TelegramClient, events, sync
from telethon.tl.functions.messages import GetHistoryRequest, GetBotCallbackAnswerRequest

api_id = 974119
api_hash = 'a483ea002564cdaa0499a08126abe4a3'
client = TelegramClient('session_name', api_id, api_hash)
client.start()
channel_username = 'GOOGLE'
channel_entity = client.get_entity(channel_username)
posts = client(GetHistoryRequest(
    peer=channel_entity,
    limit=1,
    offset_date=None,
    offset_id=0,
    max_id=0,
    min_id=0,
    add_offset=0,
    hash=0))
messageId = posts.messages[0].id

client(GetBotCallbackAnswerRequest(
    channel_username,
    messageId,
    data=posts.messages[0].reply_markup.rows[0].buttons[0]))

client.disconnect()
必须单击的按钮是KeyboardButtonUrl或在这种情况下不应使用,这是不必要的

你应该使用,而不是

你应该使用,而不是

所以你的代码应该是:

from telethon import TelegramClient, sync

api_id = ...
api_hash = ...
client = TelegramClient('session_name', api_id, api_hash)

messages = client.get_messages('GOOGLE')
messages[0].click()
这应该足以单击频道中最后一条消息的第一个按钮

sender = await event.get_sender()
messages = await client.get_messages(sender.username)
await messages[0].click(0)

这将单击消息中的第一个按钮。您也可以单击(行、列),使用一些文本,例如单击(text=)注意,单击URL按钮将在web浏览器中打开URL(目前),就像官方客户端那样。机器人不会知道您单击了URL。