提问人:esthrim 提问时间:12/10/2018 更新时间:11/18/2023 访问量:2495
Telegram Bot 检查该机器人是否在群组中被提及
Telegram Bot check whether the bot is mentioned in Group
答:
5赞
marcopiii
4/26/2019
#1
当消息包含按用户名提及时,Message 对象包含一个等于的 MessageEntity(因为机器人始终具有用户名)。
可以检查以获取实体在消息文本中的位置,然后解析消息文本以检查提到的用户名是否是机器人的用户名。MessageEntity.type
'mention'
MessageEntity.offset
考虑到默认情况下,机器人在隐私模式下运行
在隐私模式下运行的机器人不会收到以下所有消息: 人们发送到群组。相反,它只会接收:
- 以斜杠“/”开头的邮件
- 对机器人自身消息的回复
- 服务消息(在群组中添加或删除的人员等)
- 来自其所属频道的消息
0赞
Alex Andreychuk
11/18/2023
#2
例如,只需扩展 @marcopiii 给出的答案 - 检查代码可能如下所示:
context.bot.name in [update.message.text[mention.offset:mention.offset + mention.length] for mention in
update.message.entities if mention['type'] == 'mention']
其中 和 是默认消息处理程序参数update
context
评论