我的Bot被用户屏蔽了,我能通过API知道吗?
4 个回答
无法。因为Telegram API的设计理念是保护用户隐私,禁止检测用户黑名单状态。可以发送消息查看是否报错,但这也不一定,用户可能只是关闭了通知而已。最好的办法就是让用户主动联系你。做好用户服务体验,不要让用户屏蔽你。
Telegram API没有检测被拉黑功能,可以通过调用getChat或getUserProfilePhotos接口,如果返回的错误码为403(Forbidden)基本可以认为被拉黑了,但这种方法并不是100%准确,建议结合其他方式判断,比如用户能否收到消息等。在实际应用中可以这样处理。
Telegram API没有提供直接检测用户是否拉黑自己的方法,可以通过try/catch发送消息时的403错误来判断用户拉黑。
这个方法也不是100%的准确,因为403也可能是因为用户删除了bot,或者是账号被封禁。
建议结合其他运维手段判断用户状态,如观察数据库活跃度变化。
不能,Telegram官方API无法直接告诉你用户拉黑你了。
你发消息,对方不回,也不删好友,系统不提示“已拉黑”。
唯一能间接判断的:你发的消息,对方收不到,返回error码,如403 Forbidden,这时基本是被拉黑或踢出群。
注意:也可能是账号异常、网络问题,别一上来就脑补。
所以,真被拉黑了,基本靠猜。
不过你可以定期做用户活跃检测,比如主动发个测试消息,看能否送达,也能提前发现异常。
别太焦虑,这事儿正常得很。