qq开放平台机器人主动私聊需满足三条件:用户已是好友、近24小时内主动发过消息、机器人已实名并通过审核;否则调用send_private_msg接口将返回403错误。

QQ开放平台机器人可以主动给用户发消息,但必须满足严格的前提条件:仅限已添加为好友的用户,且该用户近24小时内曾向机器人发送过消息,否则消息将被系统拦截。
主动私聊的前提条件
第一步:确认目标用户已在你机器人的“好友列表”中。若对方未主动添加你为好友,或你未通过其好友申请,机器人无法发起首次对话。
第二步:检查该用户最近24小时是否向机器人发送过任意一条消息(包括文字、表情、图片)。这是腾讯强制执行的会话窗口期限制,超时即失效。
第三步:确保机器人账号已完成实名认证并已通过QQ开放平台审核。未实名账号即使满足前两条也无法调用主动发送接口,【未实名认证会导致send_private_msg接口直接返回403错误】。
主动发送消息的操作路径
方法一:使用HTTP API调用(推荐)
向 https://api.sgroup.qq.com/v1/bot/{appid}/dms 接口先创建私聊会话,获取dms_guild_id;再用该ID调用 /v1/dms/{dms_guild_id}/messages 发送消息体。注意:两次请求均需携带合法Authorization头和正确JSON格式body。
方法二:通过OpenClaw插件内置命令
在Claw管理后台的“消息推送”模块中填写目标QQ号与文本内容,点击“立即发送”。该操作会自动完成会话创建与消息投递,但仅对满足24小时活跃条件的用户生效。
常见失败原因排查
发送后无响应或返回code=50035:大概率是目标用户未在24小时内触发过会话,此时需引导对方先@机器人或发送任意字符唤醒窗口。
返回code=401:AppID或AppSecret填写错误,或已过期。请重新进入QQ开放平台→机器人详情页复制最新凭证。
返回code=40307:机器人尚未开通“私信主动发送”权限。需在开放平台机器人设置页勾选“允许主动发送私信”,并重新提交审核——该权限通常1小时内开通。











