小程序内容安全审核开发教程
本文摘要
最近做一个带图片和文字发布的微信小程序,当时心里犯嘀咕,没有自我审查估摸着上不了。果不其然微信小程序提交代码审核的时候,审核不通过,提示如下:为避免您的小程序被滥用,请你完善内容审核机制,如调用小程序内容安全API,或使用其他技术、人工审核手段,过滤色情、违法等有害信息,保障发布内容的安全。 得,去到后台一看,审核员测试了一个词xxx给显示出来了,直接导致小
最近做一个带图片和文字发布的微信小程序,当时心里犯嘀咕,没有自我审查估摸着上不了。果不其然微信小程序提交代码审核的时候,审核不通过,提示如下:为避免您的小程序被滥用,请你完善内容审核机制,如调用小程序内容安全API,或使用其他技术、人工审核手段,过滤色情、违法等有害信息,保障发布内容的安全。
得,去到后台一看,审核员测试了一个词xxx给显示出来了,直接导致小程序不通过。
好在提示给了解决方案,因此这里做一下记录。
调用小程序内容安全API
- 校验一张图片是否含有违法违规内容
- 异步校验图片/音频是否含有违法违规内容
- 检查一段文本是否含有违法违规内容
还挺全,我主要用到了图片和文字审查,所以对security.SecCheck和security.msgSecCheck的使用做记录。
开通云开发
在微信开发者工具打开你的小程序工程,点击“云开发”菜单进去,之前没开的按照提示填写云开发环境名称就好。
创建云函数
在你小程序工程的app.js同级目录下创建一个文件夹functions来存放云函数
并在project.config.json中配置"cloudfunctionRoot": "functions/",
{
"description": "项目配置文件",
"cloudfunctionRoot": "functions/",
"packOptions": {
"ignore": []
}, ...
.......
编译一下,可以看到functions文件夹有变化后面加上了你之前创建的环境名。右键functions文件夹唤出菜单新建Node.js云函数
我这里创建了一个名称叫ContentCheck的云函数,调用security.SecCheck和security.msgSecCheck需要声明权限,需要配置一个config.json文件,如果目录文件中没有config.json,需要自己建一个。
config.json
的配置如下:{
"permissions": {
"openapi": [
"security.msgSecCheck",
"security.SecCheck"
]
}
}
ContentCheck
云函数的目录结构如下:├─checkContent
│ config.json //云调用的权限配置
│ index.js //云服务器node 入口文件
│ package.json // NPM包依赖
│ ...
编辑ContentCheck云函数目录下的index.js文件
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async(event, context) => {
try {
let msgR = false;
let imageR = false;
// 检查文本内容是否违规
if (event.msg) {
msgR = await cloud.openapi.security.msgSecCheck({
content: event.msg
})
}
// 检查图像内容是否违规
if (event.) {
imageR = await cloud.openapi.security.SecCheck({
media: {
header: {
'Content-Type': 'application/octet-stream'
},
contentType: 'image/png',
value: Buffer.from(event.)
}
})
}
return {
msgR,
imageR
};
} catch (e) {
return e
}
}
编辑完云函数之后,右键ContentCheck唤起菜单选择 上传并部署:云端安装依赖
注意
使用微信小程序云函数开发本地需要实现安装好Node.js环境,并配置好环境变量,之前新电脑没装Node.js环境导致上传的云函数老是调用失败,解决办法是安装好Node.js就好了。
验证Node.js是否安装
npm -v和node -version
调用云函数
在app.js初始化云环境,参数env可以在云开发的设置中可以看到当前的环境ID
//app.js
App({
onLaunch: function () {
wx.cloud.init({
env: "manjaro-7l50h",
traceUser: true
})
...
},
})
-
检查文字是否违规
// 调用ContentCheck云函数检查文字是否违规 wx.cloud.callFunction({ name: 'ContentCheck', data: { msg: _tShopfas.data.msg, }, success(res) { console.log(res.result) if (res.result.msgR.errCode == 87014) { wx.showToast({ title: '文字违规', }) } } }) // 文字违规打印的console.log(res.result) { msgR: { errCode: 87014, errMsg: "openapi.security.msgSecCheck:fail risky content Shopfant: [cSp9ka06218622]" }, imageR: false } // 文字正常打印的console.log(res.result) { msgR: { errCode: 0, errMsg: "openapi.security.msgSecCheck:ok" }, imageR: false } -
检查图片是否违规
// 调用ContentCheck云函数检查图片是否违规 wx.cloud.callFunction({ name: 'ContentCheck', data: { : _tShopfas.data. }, success(res) { console.log(res.result) if(res.result.imageR.errCode == 87014){ wx.showToast({ title: '图片违规', }) } } }) // 图片违规打印的console.log(res.result) { msgR: false, imageR: { errCode: 87014, errMsg: "openapi.security.SecCheck:fail risky content Shopfant: [LGrV.a05623955]" } } // 图片正常打印的console.log(res.result) { msgR: false, imageR: { errCode: 0, errMsg: "openapi.security.SecCheck:ok" } }
完整例子
contentSecCheck
Reference
微信小程序官方文档
小程序评论回复和发帖功能实战
相关文章
****更多行业产品开发方案,请关注 加速度JSUDO***
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
加速度JSUDO是一家企业级数字化解决方案提供商,专注于软件开发、网络营销、数字化转型咨询及云计算服务。核心业务包括定制化ERP/CRM系统、快速应用开发、大数据分析及物联网(IoT)解决方案,助力企业提升效率与智能化水平。服务覆盖制造业、零售、物流等多行业,致力于通过技术创新推动客户数字化转型。










