首先放微信官方文档介绍:微信官方违规内容校验。翻到下面的 健康运营指引>>内容安全解决方案,里面有包含文字内容、图片等信息校验,通过调用微信官方接口审核,保证了运营内容的绿色健康。
强调说明:
1.微信调用校验接口需要在后台调用,后台调用返回一个成功或者失败的状态码给小程序,小程序端不可直接调用,因为为保障账号安全不可使用此域名地址(https://api.weixin.qq.com),所以在小程序端调用,发布线上后发现功能无法使用。
2.开发环境:mysql、java、linux server、微信开发工具
接口功能说明:
1.微信小程序端
//文本内容校验
wx.request({
url: 'https://www.xxxxx.com/auth/meditation/getToken',
method: 'GET',
success: res => {
var access_token = res.data.access_token;
let token = access_token;
wx.request({
method: 'POST',
url: 'https://www.xxxxx.com/auth/meditation/illegalTextVerife',
data: {
content: content,
access_token: access_token
},
header: {
'content-type': 'application/x-www-form-urlencoded'
},
success(data) {
if (data.data.errcode !== 87014) { // 合格
//开始写入
//结束写入
} else {
wx.showToast({
title: '內容違規',
})
}
}
})
},
fail() {
console.log(res);
return;
}
})
//图片内容校验
wx.request({
url: 'https://www.xxxxx.com/auth/meditation/getToken',
method: 'GET',
success: res => {
var access_token = res.data.access_token;
let token = access_token;
//开始写入
let filepaths = tempFilePaths[0]; //图片,如果存在多张,循环该方法即可,tempFilePaths自己定义保存图片的变量
//检测图片
wx.uploadFile({
url: 'https://www.xxxxx.com/auth/meditation/illegalImgVerife',
method: 'POST',
filePath: filepaths[0],
name: 'file',
header: {
'Content-Type': 'application/octet-stream' //一定要设置header头部信息’Content-Type’: ‘application/octet-stream’
},
formData: {
filepaths: filepaths,
token: token
},
success: function (data) {
if (data.data.errcode !== 87014) { // 没有违规
} else {
wx.showToast({
title: '內容違規',
})
}
}
})
},
fail() {
console.log(res);
return;
}
})
2.JAVA后台文本内容校验接口请求
第一步获取 access_token ,成功获取再进行校验接口请求
/**
* 获取token
*
* @param userInput
* @return
*/
@ResponseBody
@RequestMapping("/getToken")
public JSONObject getToken() {
String grant_type = "client_credential";
String appid = "xxxxxxx";//可在微信公众平台查看
String secret = "xxxxxxx";//可在微信公众平台查看
// 请求参数
String params = "grant_type=" + grant_type + "&appid=" + appid + "&secret=" + secret;
// 发送请求
String sr = Request.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);
// 解析相应内容(转换成json对象)
JSONObject json = JSONObject.fromObject(sr);
return json;
}
第二步 请求内容校验接口
/**
* 违规内容校验
*
* @param content
* @param access_token
* @return
*/
@ResponseBody
@RequestMapping("/illegalTextVerife")
public JSONObject illegalTextVerife(String content, String access_token) {
JSONObject data = new JSONObject();
data.put("content", content);
RestTemplate restTemplate = new RestTemplate();
String url = ("https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" + access_token);
String response = restTemplate.postForObject(url, data, String.class);
JSONObject json = JSONObject.fromObject(response);
return json;
}
返回数据:
3.JAVA后台图片违规信息校验即可请求
第一步获取 access_token ,成功获取再进行校验接口请求(请求之前都是要获取token)
/**
* 获取token
*
* @param userInput
* @return
*/
@ResponseBody
@RequestMapping("/getToken")
public JSONObject getToken() {
String grant_type = "client_credential";
String appid = "xxxxxxx";//可在微信公众平台查看
String secret = "xxxxxxx";//可在微信公众平台查看
// 请求参数
String params = "grant_type=" + grant_type + "&appid=" + appid + "&secret=" + secret;
// 发送请求
String sr = Request.sendGet("https://api.weixin.qq.com/cgi-bin/token", params);
// 解析相应内容(转换成json对象)
JSONObject json = JSONObject.fromObject(sr);
return json;
}
第二步请求校验图片接口
/**
* 违规图片校验
*
* @param file
* @param token
* @return
*/
@RequestMapping(value = "/illegalImgVerife", method = { RequestMethod.POST })
@ResponseBody
public JSONObject illegalImgVerife(@RequestParam(value = "file") MultipartFile file, String token, FileInfo fileInfo,
MeditationRecord record) {
JSONObject json = new JSONObject();
try {
String url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + token;
String result = uploadFile(url, file);//自己定义一个POST请求的方法
json = JSONObject.fromObject(result);
} catch (Exception e) {
e.printStackTrace();
}
return json;
}
返回数据同上,微信小程序校验功能就完成了。
说明:微信小程序正式环境必须使用SSL安全格式的地址(https),如果使用linux服务器,可以使用nginx反向代理配置映射域名与端口