# security.msgSecCheck
本接口应在服务器端调用,详细说明参见服务端API。
本接口支持云调用。需开发者工具版本 >=
1.02.1904090
(最新稳定版下载),wx-server-sdk
>=0.4.0
检查一段文本是否含有违法违规内容。
1.0 版本接口文档【点击查看】,1.0版本在2021年9月1日停止更新,请尽快更新至2.0
应用场景举例:
- 用户个人资料违规文字检测;
- 媒体新闻类用户发表文章,评论内容检测;
- 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 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"
}