You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telethon机器人无法实现用户自动回复功能问题求助

解决Telethon机器人无法自动回复问候消息的问题

你的代码无法触发自动回复,核心原因是错误地对用户发送的/start消息调用了click()方法——这条消息并没有可点击的回复按钮,而且你需要操作的是机器人自己刚发送的问候消息,而非用户的触发消息。

修改后的代码实现

from telethon import TelegramClient, events

api_id = 'api_id'
api_hash = 'api_hash'
channel_id = 'channel_id'

client = TelegramClient("session", api_id, api_hash)

@client.on(events.NewMessage(chats=channel_id, pattern="/start"))
async def handler(event):
    sender = await event.get_sender()
    # 发送问候消息并保存消息对象
    greeting_msg = await event.respond(f"Hi [{sender.first_name}](tg://user?id={sender.id})!")
    # 模拟点击回复按钮,发送自动回复内容
    await client.send_message(channel_id, "自动回复的内容", reply_to=greeting_msg.id)

client.start()
client.run_until_disconnected()

关键修改说明

  1. 保存问候消息对象:event.respond()方法会返回机器人发送的消息对象,我们需要用它来指定回复目标。
  2. 模拟回复操作:通过client.send_message()并设置reply_to参数为问候消息的ID,就能实现“点击消息回复按钮发送内容”的效果——这和手动点击消息的回复按钮后发送消息的行为完全一致。

如果你的需求是让发送/start的用户账号自动回复(而非机器人账号),则需要额外登录该用户的Telegram账号(使用另一个TelegramClient实例),再执行回复操作,但这种场景需要用户授权,实际开发中需谨慎处理。

内容的提问来源于stack exchange,提问作者Pythonist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:03:07