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

Pyrogram:如何检查聊天中是否可发送贴纸、图片或视频

用Pyrogram检查聊天中是否允许发送贴纸、图片或视频

要判断Telegram聊天里能不能发送贴纸、图片或视频,核心是获取聊天的默认权限和当前用户在该聊天的实际权限,Pyrogram提供了直接的API来实现:

核心思路

  1. 聊天的创建者/管理员不受默认权限限制,默认拥有所有发送权限。
  2. 普通用户的权限需优先看自身被单独设置的权限,若无单独设置则使用聊天的默认权限。

具体实现代码

from pyrogram import Client

app = Client("your_session_name")

async def check_media_send_permissions(chat_id):
    # 获取目标聊天的基础信息
    chat = await app.get_chat(chat_id)
    # 获取当前账号在该聊天的成员身份及权限
    current_user = await app.get_chat_member(chat_id, "me")
    
    # 初始化权限结果
    media_perms = {
        "贴纸": False,
        "图片": False,
        "视频": False
    }
    
    # 管理员或创建者直接拥有全部媒体发送权限
    if current_user.status in ("administrator", "creator"):
        media_perms["贴纸"] = True
        media_perms["图片"] = True
        media_perms["视频"] = True
    else:
        # 普通用户:优先使用个人权限,无设置则用聊天默认权限
        user_perms = current_user.permissions
        chat_default_perms = chat.permissions
        
        media_perms["贴纸"] = user_perms.can_send_stickers if user_perms.can_send_stickers is not None else chat_default_perms.can_send_stickers
        media_perms["图片"] = user_perms.can_send_photos if user_perms.can_send_photos is not None else chat_default_perms.can_send_photos
        media_perms["视频"] = user_perms.can_send_videos if user_perms.can_send_videos is not None else chat_default_perms.can_send_videos
    
    return media_perms

# 运行示例
with app:
    permissions = app.run(check_media_send_permissions("替换为聊天ID或用户名"))
    print(f"允许发送贴纸:{permissions['贴纸']}")
    print(f"允许发送图片:{permissions['图片']}")
    print(f"允许发送视频:{permissions['视频']}")

关键说明

  • Chat.permissions:返回聊天的默认权限配置,是ChatPermissions对象。
  • ChatMember.permissions:返回当前用户在该聊天的单独权限配置,若未单独设置则字段值为None。
  • 权限字段对应关系:
    • 贴纸 → can_send_stickers
    • 图片 → can_send_photos
    • 视频 → can_send_videos

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:22:19