WxComment评论组件接入评论内容安全检测

2021-01-26 16:20:51 浏览数 (1)

记录下如何为小程序评论组件添加内容安全检测功能

最近打算为之前做的小程序增加评论功能,提交审核被拒,理由是存在信息安全风险

于是就需要修改 WxComment 组件增加检测功能了。

修改方法如下:

# 增加云函数

参照官方文档 增加内容检测云函数

代码语言:javascript复制
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  try {
    const res = await cloud.openapi.security.msgSecCheck({
      content: event.inputText,
    })
    return res
  } catch (err) {
    return err
  }
}

注意在函数根目录增加 config.json 设置 security.msgSecCheck 云调用权限

代码语言:javascript复制
{
    "permissions": {
        "openapi": [
            "security.msgSecCheck"
        ]
    }
}

package.json内容

代码语言:javascript复制
{
  "name": "msg_check",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "wx-server-sdk": "latest"
  }
}

然后创建并部署云函数即可。

# 修改评论组件

找到 WxComment/component/WxComment/WxComment.js 文件

  1. 在 bindFormSubmit 方法前追加如下方法:
代码语言:javascript复制
async checkMsg(content) {
    try {
        var res = await wx.cloud.callFunction({
            name: 'msg_check',
            data: {
            content: content,
            }
        });
        if (res.result.errCode == 0)
            return true;
        return false;
    } catch (err) {
        console.log(err);
        return false;
    }
},
  1. bindFormSubmit 函数前增加 async 关键字,如下:
代码语言:javascript复制
async bindFormSubmit(e)
  1. 修改 bindFormSubmit 函数,在判断内容长度的后面追加如下代码
代码语言:javascript复制
let checkOk = await that.checkMsg(e.detail.value.comment_text);
if(!checkOk){
  wx.showToast({
    title: '内容含有违法违规内容',
    icon: 'none',
    duration: 2000
  })
  return;
}
  1. 项目本地设置中开启增强编译

# 内容检测测试

# 参考资料

  • 内容安全检测
  • 小程序页面内容审核规范
  • UGC类小程序运营攻略

0 人点赞