今天提交小程序的新版本没过审核,原因如下:
好吧,我就去研究了下内容安全 API。
微信官方文档 这部分没有示例代码,我去看了几个其他人的代码,发现实现不难,原理不用搞太清,会用就行。
不得不说云开发就是方便,调用都非常简单。
首先需在 config.json
文件(如没有需新建)中配置 security.msgSecCheck
API 的权限,这里官方有讲解。
然后云函数 msgCheck 代码如下:
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
try {
const res = await cloud.openapi.security.msgSecCheck({
content: event.content
})
return res;
} catch (err) {
return err;
}
}
所以需要传入云函数的参数是 content
,也就是你要检测的内容。
然后只需在页面的 js 文件中调用这个云函数并传入参数就行了。为了用户体验再加个反馈:
wx.cloud.callFunction({
name: 'msgCheck',
data: {
content: e.detail.value.msgInput //传入我得到的文本内容
}
}).then(ckres => {
console.log(ckres)
//写审核通过之后的操作 if == 0
if (ckres.result.errCode == 0) {
message.add({
data: {
imageSrc: this.data.imageSrc,
name: this.data.name,
text: e.detail.value.msgInput,
pageId: this.data.pageId,
}
})
} else {
wx.showModal({
title: '留言失败',
content: '检测到敏感词,请注意言论',
showCancel: false
})
}
})
云函数返回得数据中会有一个 errCode
,如果审核通过这个值是 0,不通过会返回 87014
测试用例
特3456书yuuo莞6543李zxcz蒜7782法fgnv级
完2347全dfji试3726测asad感3847知qwez到
开发者可使用以上两段文本进行测试,若接口 errcode 返回 87014 (内容含有违法违规内容),则对接成功。
最后说说,微信提供的这个接口并不是很严格,比如骂人的话什么的就都能通过,官方说主要是检测 涉政,色情,违法 这几类。
同样,官方还提供了图片、媒体的内容安全 API,使用方法基本一致。