Telethon中event.reply()无消息返回,Telegram Bot未响应求助
Telegram Bot无回复的可能原因
结合你提供的代码,以下是几种常见的问题原因:
客户端类型错误
你当前使用的TelegramClient是用于登录普通Telegram用户账号的客户端,而非Bot专用客户端。如果要开发Bot,应该使用BotClient并传入Bot Token(从@BotFather处获取),而非使用个人账号的api_id和api_hash。客户端未保持运行状态
代码中仅定义了事件处理函数,但没有启动客户端的消息监听循环。在async with TelegramClient(...) as client:代码块内,需要添加await client.run_until_disconnected()来让客户端持续运行并监听消息,否则客户端初始化后会立即退出,无法捕获任何消息。修正后的代码片段:
async def main(): async with TelegramClient('new_session', api_id, api_hash) as client: @client.on(events.NewMessage) async def my_event_handler(event): await event.reply('Message is received') await client.run_until_disconnected() # 新增此行 nest_asyncio.apply() asyncio.run(main())事件监听范围未明确
默认的events.NewMessage会监听所有可接收的消息,但如果你的账号在大量聊天中,可能无法及时捕获目标消息,或者需要指定特定聊天范围。比如添加chats参数监听特定聊天:@client.on(events.NewMessage(chats=['你的测试聊天ID或用户名']))会话未完成登录
首次运行代码时,new_session会话文件尚未创建,需要完成手机号验证、验证码输入(若开启两步验证还需密码)才能成功登录。如果登录流程未完成,客户端处于未连接状态,自然无法处理消息。
内容的提问来源于stack exchange,提问作者Alexander Donskoy
相关产品推荐
相关产品推荐

