首页 > 解决方案 > Bot错误地处理消息

问题描述

我在编写我的机器人时没有什么问题,我试图只在我的机器人内部发送消息,但我的客户处理任何聊天中的任何消息。

from telethon.sync import TelegramClient, events
import socks
api_id = 'my_id'
api_hash = 'my_hash'
client = TelegramClient('name', api_id, api_hash, proxy=###).start(bot_token='bot_token') 

@client.on(events.NewMessage(pattern='/start'))
async def send_welcome(event):
    await event.reply('How re you doing')

@client.on(events.NewMessage)
async def echo_all(event):
    await event.reply(event.text)

client.run_until_disconnected()

标签: pythontelethon

解决方案


您需要func=lambda e: e.is_private进入events.NewMessage(),以便处理程序仅捕获来自私人对话的消息(这就是您定义为“仅在您的机器人内部的消息”)

它看起来像这样:

@events.register(events.NewMessage(func=lambda e: e.is_private))
async def handler(event):
    ...

推荐阅读