小程序提交审核时,由于没有过滤评论的敏感词汇,审核失败,网上的敏感词过滤api收费太贵,幸好小程序自己提供了一套敏感词汇检测方法。

1.在项目中新建一个文件夹例如functions,

2.找到项目中的prject.config.json配置文件,加入cloudfunctionRoot:'文件夹名',如下图:

20190826171519786.png

3.创建一个云开发环境,按提示操作即可

微信截图_20191212102907.png

4.右键functions文件夹名,新建Node.js云函数(开启云开发才有这个选项),起名为:msgSC,进入msgSC目录修改index.js文件

// 云函数入口文件 index.js
const cloud = require('wx-server-sdk')
 
cloud.init()
 
// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  try {
    const result = await cloud.openapi.security.msgSecCheck({
      content: event.text
    })
    
    if (result && result.errCode.toString() === '87014'){
      return { code: 500, msg: '内容含有违法违规内容', data: result }
    }else{
      return { code: 200, msg: 'ok', data: result }
    }
  } catch (err) {
    // 错误处理
    if (err.errCode.toString() === '87014') {
      return { code: 500, msg: '内容含有违法违规内容', data: err } 
    }
    return { code: 502, msg: '调用security接口异常', data: err }
  }
}

5.新建config.json

//config.json 这条注释请不要复制到代码中
{
  "permissions": {
    "openapi": [
      "security.msgSecCheck"
    ]
  }
}

6.右键msgSC函数名->上传并部署,不上传node-modules

7.page中调用

  bindbt: function () {
    that = this;
    wx.cloud.init();
    wx.cloud.callFunction({
      name: 'msgSC',
      data: {
        text: "需要检测的内容"
      }
    }).then((res) => {
      if (res.result.code == "200") {
        //检测通过
 
      } else {
 
        //执行不通过
        wx.showToast({
          title: '包含敏感字哦。',
          icon: 'none',
          duration: 3000
        })
      }
    })
  }