我尝试在指定的时间间隔向我的组发送消息,但在第一次尝试发送消息时,我在输出中收到警告。下一次没有警告,但组中没有发布任何内容。我是组的所有者,因此理论上不应该有任何权限问题。
- 代码**
from telethon import TelegramClient
import schedule
def sendImage():
apiId = 1111111
apiHash = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
phone = "+111111111111"
client = TelegramClient(phone, apiId, apiHash)
toChat = 1641242898
client.start()
print("Sending...")
client.send_file(toChat, "./image.jpg", caption="Write text here")
client.disconnect()
return
def main():
schedule.every(10).seconds.do(sendImage)
while True:
schedule.run_pending()
if __name__ == "__main__":
main()
- 产出**
Sending...
RuntimeWarning: coroutine 'UploadMethods.send_file' was never awaited
client.send_file(toChat, "./image.jpg", caption="Write text here")
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
Sending...
Sending...
Sending...
3条答案
按热度按时间y4ekin9u1#
Telethon使用
asyncio
,但是schedule
在设计时并没有考虑到asyncio
,你应该考虑使用基于asyncio
的schedule
替代品,或者仅仅使用Python在asyncio
模块中的内置函数来“调度”事情:您还应该考虑在
main
中创建和start()
客户机,以避免每次都重新创建它。zdwk9cvp2#
这意味着您给予时间完成操作,请尝试以下更改:
另外我不认为你应该保持连接和断开,在我看来,客户端。开始()应该在这个函数和客户端。断开了
8i9zcol23#
正如输出所说,你需要等待协程的响应,代码可能会触发异常,而这些异常应该被处理。