小程序因 UGC 内容敏感词未过滤被审核不通过

更新日期: 2020-07-18 阅读次数: 20520 字数: 476 分类: 微信小程序

上个月一个屡提屡否的小程序,又被拒绝了。。。

你的小程序"$$$"代码发布审核未通过,原因如下: 1:小程序内容不符合规则: (1):你好,为避免您的小程序被滥用,建议你可以完善审核机制,保障发布内容的安全,如增加不良信息关键词库屏蔽和后台屏蔽审核。

解决方案就是加上内容过滤接口。

刚好,赶上小程序内容安全接口内测,决定尝试一下。

内容安全接口开发文档

https://mp.weixin.qq.com/cgi-bin/announce?token=233192696&action=getannouncement&key=11522142966rk3L2&version=1&lang=zh_CN&platform=2

这是接口基于HTTPS协议。开发者服务器可以调用此接口校验一段文本是否含有敏感信息。

应用场景举例

  • 用户个人资料违规文字检测;
  • 媒体新闻类用户发表文章,评论内容检测;
  • 游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。

频率限制

单个appid调用上限为2000次/分钟,1,000,000次/天

curl -d '{ "content":"XX功" }' 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token=xxx'

包含违禁词的情况下,返回
{"errcode":87014,"errmsg":"risky content hint: [cs_Iya01229041]"}

正常,返回
{"errcode":0,"errmsg":"ok"}

效果演示

扫描下方小程序码之后,在活动名称,或者简介中,输入一些敏感词,测试一下。实际效果非常好。

小程序因 UGC 内容敏感词未过滤被审核不通过

建议,上线提交审核前,一定要接入这个检测接口,工作量很小,省的担惊受怕。

在小程序前端也能调用

注意,前端调用只能在开发环境下使用。在发布之后,是不适合调用的。因为获取 token 那个接口是有 secret key 的,这非常不安全;而且这个接口有调用次数限制,在前端容易超限制。

wx.request({
      url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxx&secret=xxx',
      method: 'GET',
      success: res => {
        var access_token = res.data.access_token;
        wx.request({
          method: 'POST',
          url: `https://api.weixin.qq.com/wxa/msg_sec_check?access_token=${access_token}`,
          data: {
            content: value.content
          },
          success: res => {
            console.log(res);
            if (res.data.errcode !== 87014) {
              console.log('ok');
            } else {
              console.log('......');
            }
          }
        })
      }
    })

任何词都返回 ok 问题

如果是 PHP 调用接口,出现任何词都能通过接口审核问题。

参考:https://developers.weixin.qq.com/community/develop/doc/0000aeb05e8b78cd7ce69b40550000

编码要 JSON_UNESCAPED_UNICODE 才行

golang 实现

golang 实现敏感词过滤

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式