电报机器人按行内按钮时间太长 [英] Telegram Bot presses Inline button too long
本文介绍了电报机器人按行内按钮时间太长的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我制作了一个机器人,它应该可以点击内联按钮。 我的问题是,一次点击按钮需要整整15秒。 如何加快这一进程?
from telethon.sync import TelegramClient
from telethon import functions, types
from telethon import TelegramClient, sync
import time
AllLogs = open('logs.txt')
for logs in AllLogs:
api_id, api_hash = logs.split(';')
client = TelegramClient(f'session_{api_id}', api_id, api_hash)
client.start()
messages = client.get_messages(int(ChannelId), ids=int(MessageId))
start_time1 = time.time()
messages.click(0)
print("--- %s seconds ---" % (time.time() - start_time1))
client.disconnect()
推荐答案
您无法加速此过程。Click方法向Telegram发送请求,Telegram然后向机器人发送更新。机器人必须回复Telegram的更新,然后Telegram会将结果转发回您最初的点击。
在本质上,Click必须等待机器人回答查询,如果它不够快地响应它,它就会变得很慢。可能需要修复机器人以更快地响应(或者根本不修复;如果它不响应,Telegram超时并单击ReturnsNone
)。
您可以做的是派生一个新的asyncio
任务以在后台运行Click";,但是这不是好的做法,因为您应该始终await
所有派生的任务,并且如果代码依赖于机器人的响应,您将不得不以某种方式等待它。我不推荐使用这种方法,但它在技术上是可行的。
import asyncio
...
asyncio.create_task(messages.click(0))
这篇关于电报机器人按行内按钮时间太长的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文