使用官方提供的imgSecCheck接口,敏感图片有时会返回OK,为了避免翻车,所以改用了服务市场的imgSecCheck,体验效果棒棒哒
点下面链接去服务市场购买imgSecCheck(免费10000次):
https://developers.weixin.qq.com/community/servicemarket/detail/000a246b6fca70b76a896e6a25ec15
购买后进入我的购买
记录下appid 等下会用到
准备就绪后就可以实现代码了,整体逻辑为:
1.使用wx.chooseImage上传图片
2.获取到图片临时路径,使用wx.getFileSystemManager().readFile 将图片转换为base64
3.请求服务市场接口,返回验证结果
4.实现自己的逻辑
chooseImg() {
var that = this;
wx.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album'],
success: (res) => {
let tempFilePath = res.tempFilePaths[0]
wx.getFileSystemManager().readFile({
filePath: tempFilePath,
encoding:'base64',
success: res => {
wx.serviceMarket.invokeService({
service: '服务市场appid',
api: 'imgSecCheck',
data: {
"Action": "ImageModeration",
"Scenes": ["PORN", "POLITICS"],
"ImageUrl": "",
"ImageBase64": res.data,
"Config": "",
"Extra": ""
},
}).then(res => {
if(res.data.Response.PornResult.Suggestion=='BLOCK'||
res.data.Response.PoliticsResult.Suggestion=='BLOCK'){
wx.showToast({
title: '图片不合法,请重新上传',
icon:'none'
})
}else{
that.setData({
avatarUrl: tempFilePath
})
}
}).fail(err =>{
console.log(err)
})
}
})
}
})
},
Scenes 接收四个值:
1. PORN,色情识别
2. TERRORISM,暴恐识别
3. POLITICS,政治敏感识别
4. TEXT, 图像文本识别
返回参数中 PASS表示正常 BLOCK表示未通过检测
接口使用次数是按照Scenes个数计算的,如果你选了4个,一次就会扣除4次