应用场景:
解决小程序输入内容违规,导致小程序被封风险,或者微信官方检查到小程序未使用安全审核机制,则警告要求使用,否则封禁搜索功能。
核心代码:
云函数端:
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event) => {
try {
let result = '';
if(event.content){
result = await cloud.openapi.security.msgSecCheck({
content: event.content
});
}else if(event.base64){
result = await cloud.openapi.security.imgSecCheck({
media: {
contentType: 'image/jpeg',
value: Buffer.from(event.base64, 'base64')
}
})
}
return {
result
}
} catch (error) {
return {
error
}
}
}
小程序端:
//文本安全检测
wx.cloud.callFunction({
name: "secCheck",
data: {
content: "花里胡哨",
}
}).then((res) => {
console.log('msgSecCheck =', res)
})
//图片安全检测
wx.chooseImage({
count: "1",
complete: (res) => {
wx.getFileSystemManager().readFile({
filePath: res.tempFilePaths[0],
encoding: "base64",
success: (res) => {
wx.cloud.callFunction({
name: "secCheck",
data: {
base64: res.data,
}
}).then((res) => {
console.log('imgSecCheck =', res)
})
}
});
},
})
说明提示:
由于代码片段不支持云开发,故无法放代码片段,使用过程中有什么问题,欢迎讨论。
这个只能适合单张图片?
可以不用event.base64,直接用fileid就可以。
// 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() console.log("接收参数为:", event) try { //文字安全检测 let msgcheckresult = await cloud.openapi.security.msgSecCheck({ content: event.msg }) console.log("文字安全检查结果为:", msgcheckresult) if (msgcheckresult.errCode == 0) { console.log("文字安全检查通过。") } else { console.log("文字安全检查未通过。") return msgcheckresult.errCode } //图片安全检测 for (i = 0; i < event.imagefileid.length; i++) { console.log("第[",i,"]个图片fileid为:",event.imagefileid[i]) let imgcheckresult = await cloud.openapi.security.imgSecCheck({ media: { contentType: 'image/jpeg', value: Buffer.from(event.imagefileid[i]) } }) console.log("第[",i,"]个图片安全检查结果为:", imgcheckresult) if (imgcheckresult.errCode != 0){ return imgcheckresult.errCode } } return 0 } catch (error) { return error } }
你可以试试这篇文章解决方式:完美解决
https://mp.weixin.qq.com/s/o77bLIfCEkHq3acmqS4Tyw
真机上,图片有点大的时候,试过了吗?
我这边是不行的。
https://mp.weixin.qq.com/s/o77bLIfCEkHq3acmqS4Tyw
标记,以后再看