# security.msgSecCheck

本接口应在服务器端调用,详细说明参见服务端API

本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载),wx-server-sdk >= 0.4.0

检查一段文本是否含有违法违规内容。

1.0 版本接口文档【点击查看】,1.0版本在2021年9月1日停止更新,请尽快更新至2.0

应用场景举例:

  1. 用户个人资料违规文字检测;
  2. 媒体新闻类用户发表文章,评论内容检测;
  3. 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天*

调用方式:

# HTTPS 调用

# 请求地址

POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN

# 请求参数

属性 类型 默认值 必填 说明
access_token / cloudbase_access_token string 接口调用凭证
version number 接口版本号,2.0版本为固定值2
openid string 用户的openid(用户需在近两小时访问过小程序)
scene number 场景枚举值(1 资料;2 评论;3 论坛;4 社交日志)
content string 需检测的文本内容,文本字数的上限为2500字,需使用UTF-8编码
nickname string 用户昵称,需使用UTF-8编码
title string 文本标题,需使用UTF-8编码
signature string 个性签名,该参数仅在资料类场景有效(scene=1),需使用UTF-8编码

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
errcode number 错误码
errmsg string 错误信息
trace_id string 唯一请求标识,标记单次请求
result object 综合结果
detail array 详细检测结果

errcode 的合法值

说明 最低版本
0 成功
-1 系统繁忙,此时请开发者稍候再试
40001 token 无效
40003 openid无效
40129 场景值错误(目前支持场景 1 资料;2 评论;3 论坛;4 社交日志)
43104 appid与 openid 不匹配
43302 方法调用错误,请用 post 方法调用
44002 传递的参数为空
47001 传递的参数格式不对
61010 用户访问记录超时(用户未在近两小时访问小程序)
其他 系统错误

errmsg 的合法值

说明 最低版本
"ok" 请求正常
"其他提示" 错误信息

result综合了多个策略的结果给出了建议,包含的属性有

属性 类型 说明
suggest string 建议,有risky、pass、review三种值
label string 命中标签枚举值,100 正常;10001 广告;20001 时政;20002 色情;20003 辱骂;20006 违法犯罪;20008 欺诈;20012 低俗;20013 版权;21000 其他

detail包含多个策略类型的检测结果,策略类型的检查结果可能存在的属性如下

属性 类型 说明
strategy string 策略类型
errcode number 错误码,仅当该值为0时,该项结果有效
suggest string 建议,有risky、pass、review三种值
label number 命中标签枚举值,100 正常;10001 广告;20001 时政;20002 色情;20003 辱骂;20006 违法犯罪;20008 欺诈;20012 低俗;20013 版权;21000 其他
prob number 0-100,代表置信度,越高代表越有可能属于当前返回的标签(label)
keyword string 命中的自定义关键词

# 调用示例

{
       "openid": "OPENID",
       "scene": 1,
       "version": 2,
       "content":"hello world!"
   }

# 请求结果示例

{
   "errcode": 0,
   "errmsg": "ok",
   "result": {
       "suggest": "risky",
       "label": 20001
   },
   "detail": [
       {
           "strategy": "content_model",
           "errcode": 0,
           "suggest": "risky",
           "label": 20006,
           "prob": 90
       },
       {
           "strategy": "keyword",
           "errcode": 0,
           "suggest": "pass",
           "label": 20006,
           "level": 20,
           "keyword": "命中的关键词1"
       },
       {
           "strategy": "keyword",
           "errcode": 0,
           "suggest": "risky",
           "label": 20006,
           "level": 90,
           "keyword": "命中的关键词2"
       }
   ],
   "trace_id": "60ae120f-371d5872-7941a05b"
}

调用过程中如遇到问题,可在官方社区发帖交流。

# 云调用

云调用是微信云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。

# 接口方法

openapi.security.msgSecCheck

需在 config.json 中配置 security.msgSecCheck API 的权限,详情

# 请求参数

属性 类型 默认值 必填 说明
version number 接口版本号,2.0版本为固定值2
openid string 用户的openid(用户需在近两小时访问过小程序)
scene number 场景枚举值(1 资料;2 评论;3 论坛;4 社交日志)
content string 需检测的文本内容,文本字数的上限为2500字,需使用UTF-8编码
nickname string 用户昵称,需使用UTF-8编码
title string 文本标题,需使用UTF-8编码
signature string 个性签名,该参数仅在资料类场景有效(scene=1),需使用UTF-8编码

# 返回值

# Object

返回的 JSON 数据包

属性 类型 说明
errCode number 错误码
errMsg string 错误信息
traceId string 唯一请求标识,标记单次请求
result object 综合结果
detail array 详细检测结果

errCode 的合法值

说明 最低版本
0 成功

# 异常

# Object

抛出的异常

属性 类型 说明
errCode number 错误码
errMsg string 错误信息

errCode 的合法值

说明 最低版本
-1 系统繁忙,此时请开发者稍候再试
40001 token 无效
40003 openid无效
40129 场景值错误(目前支持场景 1 资料;2 评论;3 论坛;4 社交日志)
43104 appid与 openid 不匹配
43302 方法调用错误,请用 post 方法调用
44002 传递的参数为空
47001 传递的参数格式不对
61010 用户访问记录超时(用户未在近两小时访问小程序)
其他 系统错误

errMsg 的合法值

说明 最低版本
"ok" 请求正常
"其他提示" 错误信息

# 调用示例

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.security.msgSecCheck({
        "openid": 'OPENID',
        "scene": 1,
        "version": 2,
        "content": 'hello world!'
      })
    return result
  } catch (err) {
    return err
  }
}

# 请求结果示例

{
   "errcode": 0,
   "errmsg": "ok",
   "result": {
       "suggest": "risky",
       "label": 20001
   },
   "detail": [
       {
           "strategy": "content_model",
           "errcode": 0,
           "suggest": "risky",
           "label": 20006,
           "prob": 90
       },
       {
           "strategy": "keyword",
           "errcode": 0,
           "suggest": "pass",
           "label": 20006,
           "level": 20,
           "keyword": "命中的关键词1"
       },
       {
           "strategy": "keyword",
           "errcode": 0,
           "suggest": "risky",
           "label": 20006,
           "level": 90,
           "keyword": "命中的关键词2"
       }
   ],
   "trace_id": "60ae120f-371d5872-7941a05b"
}