如何使用Telegram API(非Bot API)删除指定聊天消息?
解决Telegram消息删除无效的问题
- 你当前调用的
Messages_DeleteMessages只传入了消息ID,但部分Telegram客户端库需要明确指定消息所在的聊天上下文(Peer)才能正确执行删除操作。可以通过以下方式调整:
利用消息的Peer属性指定聊天
从目标消息msg中直接获取所在聊天的Peer对象,传入删除方法的上下文参数:var targetPeer = msg.Peer; var result = await _tgSession.TgClient.Messages_DeleteMessages(targetPeer, new int[] { msg.id }, revoke: true);其中
revoke: true会让消息在双方聊天中都被删除;如果只需要删除自己端的消息,可设为false。调用单条消息删除方法
如果你的客户端库提供了单条删除的重载方法,直接传入Peer和消息ID更直观:await _tgSession.TgClient.Messages_DeleteMessage(msg.Peer, msg.id, revoke: true);排查参数有效性
- 确认
msg.id是有效的消息ID,且该消息属于当前客户端有权限删除的聊天(比如自己发送的消息,或拥有管理员权限的群组/频道)。 - 检查客户端会话
_tgSession是否处于正常登录状态,没有过期或权限受限。
- 确认
内容的提问来源于stack exchange,提问作者Igor Y.
相关产品推荐
相关产品推荐

