# 文本内容安全识别

调试诊断

接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南

接口英文名:msgSecCheck

该接口用于检查一段文本是否含有违法违规内容。

应用场景:

  • 用户个人资料违规文字检测;
  • 媒体新闻类用户发表文章,评论内容检测;
  • 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。

# 1. 调用方式

# HTTPS 调用

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

支持加密请求: 本接口支持服务通信二次加密和签名,可有效防止数据篡改与泄露。查看详情

# 云调用

  • 调用方法:security.msgSecCheck

  • 出入参和 HTTPS 调用相同,调用方式可查看 云调用 说明文档

# 第三方调用

  • 本接口支持第三方平台代商家调用。

  • 该接口所属的权限集 id 为:18

  • 服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。

# 2. 请求参数

# 查询参数 Query String parameters

参数名类型必填说明
access_tokenstring接口调用凭证,可使用 access_tokenauthorizer_access_token

# 请求体 Request Payload

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

# 3. 返回参数

# 返回体 Response Payload

参数名类型说明
errcodenumber错误码
errmsgstring错误信息
detailobjarray详细检测结果
trace_idstring唯一请求标识,标记单次请求
resultobject综合结果

# Res.detail(Array) Object Payload

详细检测结果

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

# Res.result Object Payload

综合结果

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

# 4. 注意事项

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

  • 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天。

# 5. 代码示例

# 5.1 HTTPS调用

请求示例

{
  "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"
}

# 5.2 云函数调用

请求示例

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"
}

# 6. 错误码

以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。

错误码错误描述解决方案
-1system error系统繁忙,此时请开发者稍候再试
40001invalid credential  access_token isinvalid or not latestaccess_token 无效或不为最新获取的 access_token,请开发者确认access_token的有效性
40003invalid openid不合法的 OpenID ,请开发者确认 OpenID 的有效性
40129invalid scene场景值错误(目前支持场景 1 资料;2 评论;3 论坛;4 社交日志)
43002require POST method方法调用错误,请用 post 方法调用
43104The openid does not match the appidappid与 openid 不匹配
44002empty post dataPOST 的数据包为空。post请求body参数不能为空。
44991reach max api minute frequence超出接口每分钟调用限制
45009reach max api daily quota limit超出接口每日调用限制
47001data format error解析 JSON/XML 内容错误;post 数据中参数缺失;检查修正后重试。
61010code is expired用户访问记录超时(用户未在近两小时访问小程序)

# 7. 适用范围

本接口在不同账号类型下的可调用情况:
小程序小游戏
  • ✔:该账号可调用此接口
  • 其他未明确声明的账号类型,如无特殊说明,均不可调用此接口;