python - 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()
解决方案
您需要func=lambda e: e.is_private
进入events.NewMessage()
,以便处理程序仅捕获来自私人对话的消息(这就是您定义为“仅在您的机器人内部的消息”)。
它看起来像这样:
@events.register(events.NewMessage(func=lambda e: e.is_private))
async def handler(event):
...
推荐阅读
- metadata - AEM DAM 元数据用户访问
- xml - 如何阅读和理解 .LED 文件的结构?
- php - 在没有提供 API 密钥的情况下访问 Laravel 中的数据库有多安全?
- c# - 使用 ssh.net 进行两因素身份验证
- java - 如何在java中的单例类中为两个不同的数据源创建连接
- html - 如何为引导表制作固定列标题?相同格式
- javascript - 比较 Angular js 表达式中的两个日期并执行 ng-hide
- google-cloud-firestore - 颤振:保存到 Firestore
- javascript - 使用 Javascript 变量设置样式值不起作用
- linux - 在子文件夹中批量转换图像文件 jpg、png 到 webp