【发布时间】:2021-07-01 01:21:11
【问题描述】:
我正在尝试在函数内启动 TelegramClient 会话。
没有错误,但events.NewMessage 的装饰器似乎没有起作用...
这是我使用的代码:
async def runClient(sessionName):
client = getClientBySessionName(sessionName) # this is constructed with TelegramClient from telethon.sync
await client.connect()
me = await client.get_me()
print(me.first_name)
await client.disconnect()
if not me:
return
await client.start()
@client.on(events.NewMessage)
async def nmh(event):
await newMessageHandler(event, client)
async def newMessageHandler(event, client):
print(event.raw_text)
为了确保我已经正确创建了 TelegramClient,我已经测试了其他方法,它工作正常
问题:
当新消息累积时,不会记录任何内容
【问题讨论】:
-
您是否启用了
logging? -
@Lonami,是的,日志记录已启用,我使用
client.send_message('me', 'hello')检查了客户端实例,效果很好。该行就在client.start()之后 -
函数执行后
asyncio事件循环是继续运行,还是脚本退出?如果它只是退出,显然 ir 无法监听更新,则必须运行循环(例如使用client.run_until_disconnected())。 -
@Lonami 脚本没有退出,它继续运行,但我没有收到新消息。 (装饰器不起作用)
-
脚本如何继续运行?
while True; sleep(1)不行。