【辰兮要努力】:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行!

博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端、后台、数据库、项目案例等相关知识点总结,感谢你的阅读和关注,希望我的博客能帮助到更多的人,分享获取新知,大家一起进步!

吾等采石之人,应怀大教堂之心,愿你们奔赴在各自的热爱中…

文章目录

  • 一、业务场景
  • 二、珊瑚检测

一、业务场景

关于社交圈模块的小程序,经常会涉及到发帖子的相关业务,此时就涉及到一个评论检测的接口或者帮助类了,分享一下相关心得;

如果你对社交圈产品业务感兴趣可以参考:社交圈模块业务分享

应用场景举例:

用户个人资料违规文字检测;
媒体新闻类用户发表文章,评论内容检测;
游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。 频率限制:单个 appId 调用上限为 4000 次/分钟,2,000,000 次/天*


关于免费的文本检测接口路径如下

HTTPS 调用请求地址

POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN

备注:普通的文本检测很多内容检测不出来


拓展补充:access_token

access_token 是小程序全局唯一后台接口调用凭据,调用绝大多数后台接口时都需使用。开发者可以通过 getAccessToken 接口获取并进行妥善保存。

为了 access_token 的安全性,后端 API 不能直接在小程序内通过 wx.request 调用,即 api.weixin.qq.com 不能被配置为服务器域名。开发者应在后端服务器使用getAccessToken获取 access_token,并调用相关 API

    /*** 微信API请求URL前缀*/private static final String PRE_URL = "https://api.weixin.qq.com";/*** 获取access_token URL*/private static final String GET_ACCESS_TOKEN_URL = PRE_URL + "/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";//正常情况下代码会自己封装一个获取access_token的方法/*** /*** 获取access_token** @param appid  小程序唯一凭证* @param secret 小程序唯一凭证密钥* @return*/public static JSONObject getAccessToken(String appid, String secret) {String url = GET_ACCESS_TOKEN_URL.replace("APPID", appid).replace("APPSECRET", secret);String result = HttpUtil.get(url);return JSONObject.parseObject(result);}

二、珊瑚检测

第一次使用免费的检测工具后送审发现微信小程序评审不通过,这里我们就用到了微信付费的 珊瑚文本检测 ,使用后送审就成功了,分享一波相关代码实践案例;如下的很多接口均以及传参均复制官网;代码亲测实践;

珊瑚文本检测路径

请求地址

POST https://api.weixin.qq.com/wxa/servicemarket?access_token=ACCESS_TOKEN

Object:返回的 JSON 数据包


Appid:wxee446d7507c68b11

Apiname:msgSecCheck

API:API 均在 wx.serviceMarket 对象下。

示例:

{"Action": "TextApproval","Text": "hello world!"
}


输出案例

{"Response": {"RequestId": "8dd99adb-5144-43ca-8213-f6a929ce5075","EvilTokens": [{"EvilFlag": 1,"EvilType": 1,"EvilKeywords": ["恶意词A"]},{"EvilFlag": 1,"EvilType": 5,"EvilKeywords": ["恶意词B"]}]}
}

服务端调用demo
https://api.weixin.qq.com/wxa/servicemarket?access_token={access_token}

{"service": "wxee446d7507c68b11","api": "msgSecCheck","client_msg_id" : "client_msg_id_1","data": {"Action": "TextApproval","Text": "hello world!"}
}

代码实践如下

   /*** 微信API请求URL前缀*/private static final String PRE_URL = "https://api.weixin.qq.com";/*** 珊瑚校验问题接口*/private static final String MSG_SHANHU_URL = PRE_URL + "/wxa/servicemarket?access_token=ACCESS_TOKEN";/*** 检查一段文本是否含有违法违规内容** @param accessToken 接口调用凭证* @param content     要检测的文本内容,长度不超过 500KB* @return*/public static JSONObject msgSecCheck(String accessToken, String content) {String url = MSG_SHANHU_URL.replace("ACCESS_TOKEN", accessToken);JSONObject jsonObject = new JSONObject();JSONObject jsonObject1 = new JSONObject();jsonObject1.put("Text", content);jsonObject1.put("Action", "TextApproval");jsonObject.put("data", jsonObject1);jsonObject.put("service", "wxee446d7507c68b11");jsonObject.put("api", "msgSecCheck");jsonObject.put("client_msg_id", "id123");String result = HttpUtil.post(url, jsonObject.toJSONString());//有需要的自行输出测试//System.out.println(JSON.toJSONString(result));//System.out.println(jsonObject + "==");return JSONObject.parseObject(result);}
    /*** 消息校验 --使用珊瑚校验** @param msg* @return-*/public boolean msgCheck(String msg) {String accessToken = getAccessToken();JSONObject jsonObject = MiniProgramUtil.msgSecCheck(accessToken, msg);JSONObject jsonData = jsonObject.getJSONObject("data");JSONObject evilTokens = jsonData.getJSONObject("Response");JSONArray responseObj = evilTokens.getJSONArray("EvilTokens");//如果是正常的文本responseObj为空if (responseObj == null || responseObj.size() == 0) {return true;}int evilFlag = responseObj.getJSONObject(0).getIntValue("EvilFlag");// EvilFlag(文本恶意等级):0、正常;1、恶意;2、可疑送审// EvilType(文本恶意类型):0、正常;1、政治;2、色情;3、辱骂/低俗;4、暴恐/毒品;5、广告/灌水;6、迷信/邪教;7、其他违法(如跨站追杀/恶意竞争等);8、综合;9、联系方式/链接 EvilKeywords(恶意关键词组)//当然这里的逻辑不一定很严谨,我这里是把所有不符合规范的全部都屏蔽和处理掉了if (evilFlag == 1 || evilFlag == 2) {return false;}return true;}

看看测试截图吧,本地调试调用珊瑚检测,可以很清晰的发现,你传入的每一个文本都可以很明确的给你分类

管理员可以在珊瑚文本检测的后台查看到对应检测数据发生变化,当我们查看到对应量发生改变的时候,这里就代表我们成功的调用了微信官方的珊瑚文本检测的接口


非常感谢你阅读到这里,如果这篇文章对你有帮助,希望能留下你的点赞

微信小程序珊瑚文本检测分享(Java案例)相关推荐

  1. 微信聊天自动解析html文本,微信小程序纯文本实现@功能

    前言 大家肯定对@功能不陌生,在如今的各大社交软件中它是一种不可或缺的功能.实现@人的功能并不复杂,只需将@人员的id传给后端,后端下发通知即可.主要的复杂点在于一键删除功能与变色功能,web端可以使 ...

  2. 微信小程序开源代码汇总分享【转载】

    https://github.com/opendigg/awesome-github-wechat-weapp awesome-github-wechat-weapp 是由OpenDigg整理并维护的 ...

  3. 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程)

    本篇记录说明 微信小程序获取用户手机号码,Java后台servlet解密(微信小程序调用微信支付也是大致的流程,详细内容可私信交流) (第一次写博客,写得不好的地方见谅,面向新手,大佬请无视,不喜勿喷 ...

  4. python人脸检测与微信小程序_微信小程序实现人脸检测功能

    本文为大家分享了微信小程序实现人脸检测的具体代码,供大家参考,具体内容如下 因为本文章的人脸检测技术运用的是百度云人工智能,首先要有百度云的账号. 近期,人脸识别已经升级到了V3,开启了测试,所以也依 ...

  5. 微信小程序富文本处理

    微信小程序富文本处理 wxml页面代码: <rich-text nodes ="{{content.content}}"></rich-text> ts代码 ...

  6. 微信小程序富文本编辑器获取内容

    1.新建wxParse文件夹 里面的结构是这样:wxParse :{ emojis (文件夹) html2json.js (文件) htmlparser.js(文件) showdown.js (文件) ...

  7. 小程序数据怎么传输到服务器,微信小程序怎么将数据传输到Java后台

    微信小程序怎么将数据传输到Java后台 发布时间:2020-12-10 14:19:49 来源:亿速云 阅读:124 作者:Leah 今天就跟大家聊聊有关微信小程序怎么将数据传输到Java后台,可能很 ...

  8. 微信小程序富文本渲染(rich-text)换行失效

    微信小程序富文本渲染(rich-text)换行失效 给rich-text标签加css 样式 white-space: pre;

  9. 微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面

    微信小程序之短连接 分享转发 点击短连接就可以直接打开小程序某个页面 首先,小程序官网地址:https://developers.weixin.qq.com/miniprogram/dev/OpenA ...

最新文章

  1. 使用overlap-add方法计算两个信号的卷积示例(在频域计算卷积)
  2. 我的业务要不要用人工智能?引入AI前你需要评估的(一)
  3. 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
  4. 性别分析--微信数据分析(一)
  5. Applications模块解析(一)
  6. 新手小白零基础搭建个人博客(三)部署篇
  7. reactinput聚焦事件_React focus 事件的坑
  8. labelme安装_语义图像分割-DIGITS2-labelme数据集自动扩展
  9. html 点击选择变色,JS实现菜单点击后变色
  10. 电商商家可以用到的小工具和素材资源网站
  11. 我也是不得不说我的学习能力下降了,这两天都没有完成一个模块
  12. 当电脑连接网络的地方显示“查找不到任何网络”解决方案
  13. 原理图端口符号_什么是电气原理图和电气接线图,二者区别及绘制要求是什么?...
  14. 自己动手定制winpe+各类dos工具箱U盘启动盘+minilinux
  15. HDU - 4282 A very hard mathematic problem
  16. Linux的常见的发行版以及不同发行版之间的联系与区别
  17. Jtag接口定义及含义
  18. Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determin
  19. 滤波器主要参数及特性
  20. Python百日百行代码挑战-day7,游戏模块学习,tkinter

热门文章

  1. Android上网彩信设置
  2. TrajGRU降雨量预测: 一个基准和一个新的模型
  3. ​田溯宁投的天润云上市:市值22亿港元 年利润下降75%
  4. 怎么批量删除文件扩展名(后缀)?
  5. 使用tkinter实现猜数字游戏
  6. Django中遇到的问题以及解决方法
  7. Java_输入输出(Scanner)
  8. WPS如何在两个页面之间插入空白页
  9. 面试时,如何进行自我介绍
  10. 语音对讲软件_微信语音转播软件哪个好?你有没有推荐的呢?