小程序内容审核踩坑笔记 敏感词过滤

时间:2024-04-08 10:16:39

笔者是渣渣phper

最近在做小程序,小程序内含有评论,评测时收到了来自官方的友好拒绝,

小程序内容审核踩坑笔记 敏感词过滤

 

没办法,解决方案有两条,自动过滤和人工审核,考虑到用户友好性和减轻运营工作压力,走上了敏感词过滤的不归路。

于是,我们又走到了人生的岔路口,选择小程序自带的内容审核还是第三方收费的关键词过滤,或者是根据敏感词库自建。

首先本着为公司节约资源,第三方收费的脱敏系统被排除在外,我们瞄上了小程序官方的api,就走上了小程序的踩坑路。

首先第一个问题,原有项目自带有post请求类,直接请求,

$data=array('content'=>$checkContent);

第一个错误出现

{"errcode":47001,"errmsg":"data format error hint: [0361b767]"}

小程序内容审核踩坑笔记 敏感词过滤

 

我开始怀疑了,原有项目自带有post请求,但post方法在项目中没有用到,会不会post方法有问题?于是,我就一条一条的断点,最后自己封装了个curl post方法,还是不行,再看看文档

小程序内容审核踩坑笔记 敏感词过滤

 

string 是什么意思,看不懂,最后从这里发现了新大陆,

小程序内容审核踩坑笔记 敏感词过滤

小程序内容审核踩坑笔记 敏感词过滤

 

 

然后,代码改成这样

$data=json_encode(array('content'=>$checkContent));

我打印了请求,但是发现不管输入啥,全部返回ok,o你妹的k啊,小程序接口有bug吧?挂了吧?这都半夜了,小程序是在维护吧?

小程序内容审核踩坑笔记 敏感词过滤

 

项目急着上线啊,小程序不能用啊,只能自建了,于是转向到搜索敏感词库,找到了以下几个库,

https://github.com/jkiss/sensitive-words

https://github.com/wulijun/php-ext-trie-filter

https://www.ctolib.com/mip/yankewei-laravel-sensitive.html

https://github.com/FireLustre/php-dfa-sensitive/blob/master/README.md

最后综合了第一个和第四个,快速实现了一个敏感词过滤,代码上线了,小程序提测了,这时候已经是晚上1点了

 

睡觉去。小程序这么大的平台怎么可能会有问题?我一遍一遍的问自己。迷迷糊糊睡着了。

第二天起来,地铁上,我开始搜索:“小程序内容审核api无效”,发现和我一样的问题还不少,官方的回答都是

小程序内容审核踩坑笔记 敏感词过滤

 

自测了一下,我都符合呀,我没问题呀,看到了一个Python的代码,提示的是编码问题,我就开始想,是不是我的也有问题,于是我换了个关键词:

“php调用msgSecCheck”,发现了新大陆;
https://developers.weixin.qq.com/community/develop/doc/0000020aae8510057b47117575b000

找到了答案,

小程序内容审核踩坑笔记 敏感词过滤

 

代码改成这样,

$data=json_encode(array('content'=>$checkContent),JSON_UNESCAPED_UNICODE);

小程序内容审核踩坑笔记 敏感词过滤

 

通过,替换自建敏感词为小程序,虽然网上说小程序的过滤也不是十分准确,但是,毕竟自己家的孩子。

 

总结:

对小程序的文档不熟悉,也没仔细看,第一个坑就踩着了

第二个坑,其实我是知道的,只是没有想到这里而已。

 

补充:

自建敏感词系统其实要解决很多问题,除掉词库,还有处理夹杂拼音的脱敏、其他符号夹杂的脱敏、倒序的脱敏、屌丝与屌这类的脱敏。