指南
调度成员
增值能力:以群内可调度成员身份发消息(默认未开通,需申请)。
适用场景
在已授权的机器人上,用 listChatVirtualMembers 列出群内可调度成员,再用 simulateSendMessage 以该成员身份发送文本 / 图片 / 文件 / 音视频 / 位置。发送成功会投递审计事件。
准入
- Admin 已为该 Bot 开启
allow_virtual_user_operation(控制台或运营侧开通)。 - 机器人是目标群的活跃成员;目标调度成员
status=active且已入群。 - 未开通、Bot 被移出群或禁言、目标身份停用或不在群内时返回
403。发送在提交消息前再次校验,列表缓存不是发送许可。
步骤
GET /api/v1/bots/listChatVirtualMembers?chat_id=<群会话ID>取virtual_user_id。- 媒体消息先走 文件上传 拿到
file_id。 POST /api/v1/bots/simulateSendMessage:公共必填chat_id、virtual_user_id;按type填text/file_id/ 坐标等。
列表分页
每页 limit 为 1–200。下一页传 pagination.next_cursor,直到 has_more=false;过滤停用或禁言身份后可能出现空页,仍需按 has_more 继续。total 是展示人数。兼容 offset 仅支持 0–1000,不能与 cursor 同时传非零值。游标绑定群、Bot 及名册版本,过期返回 409,从首页重新枚举;尚未完成独立名册切换的群也返回 409。
示例
curl -G "$API/bots/listChatVirtualMembers" \
-H "Authorization: Bearer $SOCHAT_BOT_TOKEN" \
--data-urlencode "chat_id=<chat_id>"
curl -X POST "$API/bots/simulateSendMessage" \
-H "Authorization: Bearer $SOCHAT_BOT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"chat_id": "<chat_id>",
"virtual_user_id": "<virtual_user_id>",
"type": "text",
"text": "以调度成员身份发送"
}'
约束与错误
type缺省为text;支持text、photo/image、document/file、audio、video、location。- 文本 1–1000 字;媒体需合法
file_id;频率计入机器人发送配额。 - Node / Java SDK 均已封装上述方法。
