You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Telethon API检测Telegram聊天用户无法发消息(受限/禁言)

如何通过Telethon获取用户的禁言/消息发送权限状态

你可以通过get_permissions返回的ParticipantPermissions对象直接读取细粒度权限,和edit_permissions的参数一一对应:

核心解决方案

ParticipantPermissions中的send_messages属性直接对应消息发送权限:

  • 当send_messages=False时,用户被禁止发送普通消息(即常规意义上的禁言)
  • 如果需要判断更全面的受限状态(比如不能发媒体、贴纸等),可以组合多个权限属性判断

修改你的代码示例

permissions = await client.get_permissions(event.chat_id, user.id)
# 正确判断消息禁言状态:send_messages为False则被禁言
is_message_muted = not permissions.send_messages
# 可选:判断是否处于全面受限状态(无法发送任何类型消息)
is_restricted = not (
    permissions.send_messages 
    and permissions.send_media_messages 
    and permissions.send_stickers 
    and permissions.send_gifs
)
InsertNewUserInDB(user.id, user.username, permissions.is_admin, is_message_muted, permissions.is_banned)

注意事项

你之前使用的permissions.is_muted是针对语音通话中的静音状态,并非消息禁言,这是容易混淆的点,建议替换为上述的send_messages判断逻辑。

内容的提问来源于stack exchange,提问作者Ler04kaTrap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:26:06