Skip to content

表情表态 API

put_reaction

对消息进行表情表态。

源码位置: botpy/api.py 第 1158 行

API 路由: PUT /channels/{channel_id}/messages/{message_id}/reactions/{type}/{id}

python
async def put_reaction(
    channel_id: str,
    message_id: str,
    emoji_type: EmojiType,
    emoji_id: str,
) -> str
参数类型默认值说明
channel_idstr必填消息所在子频道的 ID
message_idstr必填要表态的消息 ID
emoji_typeEmojiType必填表情类型:1 系统表情,2 emoji 表情
emoji_idstr必填表情符号的 ID

表情列表: 参考 QQ 表情列表文档

返回: 成功返回空字符串。

delete_reaction

删除消息的表情表态。

源码位置: botpy/api.py 第 1182 行

API 路由: DELETE /channels/{channel_id}/messages/{message_id}/reactions/{type}/{id}

python
async def delete_reaction(
    channel_id: str,
    message_id: str,
    emoji_type: EmojiType,
    emoji_id: str,
) -> str
参数类型默认值说明
channel_idstr必填消息所在子频道的 ID
message_idstr必填要删除表态的消息 ID
emoji_typeEmojiType必填表情类型:1 系统表情,2 emoji 表情
emoji_idstr必填表情符号的 ID

返回: 成功返回空字符串。

get_reaction_users

获取表情表态用户列表。

源码位置: botpy/api.py 第 1206 行

API 路由: GET /channels/{channel_id}/messages/{message_id}/reactions/{type}/{id}

python
async def get_reaction_users(
    channel_id: str,
    message_id: str,
    emoji_type: EmojiType,
    emoji_id: str,
    cookie: str = None,
    limit: int = 20,
) -> ReactionUsers
参数类型默认值说明
channel_idstr必填消息所在子频道的 ID
message_idstr必填消息 ID
emoji_typeEmojiType必填表情类型:1 系统表情,2 emoji 表情
emoji_idstr必填表情符号的 ID
cookiestrNone分页 cookie,第一次请求无需填写,后续请求使用上次返回的 cookie
limitint20每页返回的用户数量,范围 1-100

返回: ReactionUsers

ReactionUsers 字段:

字段类型说明
usersList[User]表态用户列表
cookiestr分页参数,用于拉取下一页
is_endbool是否已拉取完成到最后一页

分页遍历所有用户:

python
users = []
cookie = ""
while True:
    result = await self.api.get_reaction_users(
        channel_id, message_id, 1, "4", cookie=cookie
    )
    if not result:
        break
    users.extend(result["users"])
    if result["is_end"]:
        break
    cookie = result["cookie"]

print(f"共 {len(users)} 个用户表态")