java实现⼩程序内容安全检测
⾸先吐槽下⼩程序的api写的si⼀样
下⾯是正题:
公司⼩程序审核多次不过,沟通后确认是⽤户ugc没有做内容安全检测;
⼩程序的内容安全
1.imgSecCheck 图⽚检测
a.图⽚智能鉴黄:涉及拍照的⼯具类应⽤(如美拍,识图类应⽤)⽤户拍照上传检测;电商类商品上架图⽚检测;媒体类⽤户⽂章⾥的图
⽚检测等;
b.敏感⼈脸识别:⽤户头像;媒体类⽤户⽂章⾥的图⽚检测;社交类⽤户上传的图⽚检测等。 频率限制:单个 appId 调⽤上限为
2000 次/分钟,200,000 次/天*(图⽚⼤⼩限制:1M)
请求地址:
POST api.weixin.qq/wxa/img_sec_check?access_token=ACCESS_TOKEN
请求参数
属性类型默认值必填说明
access_token string是接⼝调⽤凭证
media FormData是要检测的图⽚⽂件,格式⽀持PNG、JPEG、JPG、GIF,图⽚尺⼨不超过 750px x 1334px
返回值 Object
返回的 JSON 数据包
属性类型说明
errcode number错误码(0, 47001, 87014)
errMsg string错误信息(ok, data wrong, 内容含有违法违规内容)
Java代码
public ResultEntity checkImgByInputStream(InputStream inputStream) throws HttpException {
if(inputStream == null){
return null;
}
//获取access_token
String accessToken = getAccessToken();
String url = String.format(imgSecCheckUrl, accessToken);
HttpClient httpclient = ateDefault();
HttpPost request = new HttpPost(url);
request.addHeader("Content-Type", "application/octet-stream");
try {
byte[] byt = new byte[inputStream.available()];
request.setEntity(new ByteArrayEntity(byt, ate("image/jpg")));
HttpResponse response = ute(request);
HttpEntity entity = Entity();
String result = String(entity, "UTF-8");// 转成string
logger.info("response: " + result);
ResultEntity resultEntity = JsonKit.parseObject(result, ResultEntity.class);
return resultEntity;
} catch (IOException e) {
e.printStackTrace();
} finally {
if(inputStream != null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return null;
}
当图⽚⼤于给1M时,采⽤图⽚压缩,应⽤goodle开源的Thumbnails,现在是0.4.8版本
<dependency>
<groupId&bird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
压缩图⽚(⽀持多种格式的书输⼊)
//num ⽂件长度
public InputStream compressImage(URLConnection connection, long num) throws IOException {
if(num == 0 || connection == null){
return null;
}
double multiple = 1.0 / (num / (1024 * 1024) + 1.0);
BufferedImage image = Thumbnails.InputStream()).scale(multiple).asBufferedImage();        ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", os);
InputStream is = new ByteArray());
return is;
}
2.msgSecCheck ⽂字检测
1.⽤户个⼈资料违规⽂字检测;
2.媒体新闻类⽤户发表⽂章,评论内容检测;
3.游戏类⽤户编辑上传的素材(如答题类⼩游戏⽤户上传的问题及答案)检测等。 频率限制:单个 appId 调⽤上限为 4000 次/分
钟,2,000,000 次/天*
请求地址
POST api.weixin.qq/wxa/msg_sec_check?access_token=ACCESS_TOKEN
请求参数
属性类型默认值必填说明
access_token string是接⼝调⽤凭证
content string是要检测的⽂本内容,长度不超过 500KB
返回值
返回的 JSON 数据包
属性类型说明
errcode number错误码
errMsg string错误信息
java代码
public ResultEntity checkMsg(String content) throws HttpException {
String accessToken = getAccessToken();
String url = String.format(msgSecCheckUrl, accessToken);
Map<String, String> map = new HashMap<>();
map.put("content", content);
String result = HttpClientKit.postJson(url, Json(map), 60 * 1000);
入门的java游戏小程序
if (StringUtils.isNotBlank(result)) {
return JsonKit.parseObject(result, ResultEntity.class);
}
return null;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。