微信小程序通过云调用校验一张图片是否含有违法违规内容。官方参考文档
选择图片
wx.chooseImage({count: 6,sizeType: ['compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function(res) {var tempFiles = res.tempFilestempFiles.forEach((ele,index)=>{if (ele && ele.size > 1024 * 1024) {toast('图片不能大于1M')return;}// 图片转化buffer后,调用云函数wx.getFileSystemManager().readFile({filePath: ele.path,success: res => {let check_img = check_img_Func(res.data)check_img.then(res => {//图片是否违规if (res.result.errCode && res.result.errCode == 87014){toast('图片含有违法违规内容')}}).catch(console.error)},fail: err => {reject(err);}});})}})
引用云函数
const check_img_Func = function(img) {return wx.cloud.callFunction({// 云函数名称name: 'check_img',// 传给云函数的参数data: ({img: img}),})}
check_img/index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {try {var result = await cloud.openapi.security.imgSecCheck({media: {contentType: 'image/png',value: Buffer.from(event.img) }})return result} catch (err) {return err}
}
check_img/config.json和package.json中加入配置一下代码
{"permissions": {"openapi": ["security.imgSecCheck"]}
}
云函数的开通和使用详情可参考官方文档
本篇博客旨在记录了自己在小程序编程过程中碰到的一部分问题,如有错误的地方欢迎指正