# 小程序内容安全

最近折腾起小程序云开发,写了个图书推荐小demo,并开开森森地上线了。后面完善了一下,加了个评论功能,第一次审核成功上线了。后面又加了其他的功能,又提交审核。以为会很顺利,谁知道确给我来了当头一棒。

我一下子慌了,难道是我从豆瓣爬来的内容不能这么玩?我复制了“小程序内容不符合规则”这句话,战战兢兢地打开了百度搜索....

看到上面的回答,我一下子懂了。因为我对评论功能没有做内容安全检查!Oh~wait! 他怎么知道我没做安全检查?难道微信审核人肉评论了一下?我赶紧打开小程序,点开首页的第一条数据,发现里面实实在在多了一条内容很不堪的评论!

不得不服,微信审核一上来就是问候我们的习大大,看到我对他的问候一点都没处理就直接展示了,当然一脚踹回来叫我改进啦。通过这件事,我终于体会到,微信小程序上线审核,真的是人肉审核!但上线有时候也得看运气,如果没测出来有问题,就能蒙混过关上线咯。一旦测出来,就打回重写,毫不留情。 下面说一下解决办法。根据官方解释,就是要调用微信的内容安全检查接口做审查,如果他返回的结果说没问题,那就可以直接展示,否则就不给过!如果你固执直接展示这些内容,那十有八九就是要被抓出来批斗的。最后我采用了云调用方式。核心代码就下面两段。

云函数:

async function msgSecCheck({content}) {
  let res = await cloud.openapi.security.msgSecCheck({
    content
  });
  console.log(res);
  return res;
}
1
2
3
4
5
6
7

小程序调用

let checkResult = await wx.cloud.callFunction({
    name: "security",
    data: {
      functionName: "msgSecCheck",
      content: comment
    }
  });
  if (checkResult.result.errCode !== 0) {
    this.setData({
      committing: false,
    });
    wx.hideLoading();
    wx.showModal({
      title: '评论失败',
      content: '内容不合法,请检查!',
    });
    return;
  }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

我在这里做得很简单粗暴,根据检查结果直接判断,不合法直接就不给评论。改完直接提交审核,然后很快就通过了审核。这个审核过程就是这么神奇,有时候好几天没动静,有时候一两个小时就通过了。好吧,扯淡完毕。

上次更新: 2020-01-11 10:24:36