小程序使用百度ai审核文本与图片信息

218 阅读1分钟

首先编写一个request.js如下:

var app = getApp();
//项目URL相同部分,减轻代码量,同时方便项目迁移


var host = app.url;
const msg = require("msg.js")


// 图片审核验证
let mak = '您的百度ai  ak'
let msk = '您的百度ao sk'
function getToken(doSuccess) {
  let accesstoken = ""
  let url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + mak + '&client_secret=' + msk
  wx.showLoading({
    title: '审核中...',
  })
  wx.request({
    url,
    method: "get",
    header: {
      'content-type': 'application/x-www-form-urlencoded'
    },
    success: (res) => {
      accesstoken = res.data.access_token
      doSuccess(accesstoken)
    }
  })
}

// 图片审核验证

function imgCheck(imgUrl, doSuccess) {
  getToken((accesstoken) => {
    wx.request({
      url: 'https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/user_defined?access_token=' + accesstoken,
      method: "post",
      data: {
        imgUrl
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: (resCheckData) => {
        wx.hideLoading()
        if (resCheckData.data.conclusion == "合规") {
          doSuccess(true)
        } else {
          console.log(resCheckData)
          wx.showToast({
            icon: "none",
            title: resCheckData.data.data[0].msg,
          })
        }
        

      }
    })
  })

}

//文本审核验证
function textCheck(content, doSuccess) {
  getToken((accesstoken) => {
    wx.request({
      url: 'https://aip.baidubce.com/rest/2.0/antispam/v2/spam?access_token=' + accesstoken,
      method: "post",
      data: {
        content
      },
      header: {
        'content-type': 'application/x-www-form-urlencoded'
      },
      success: (resCheckData) => {
        console.log(resCheckData)
        wx.hideLoading()
        if (resCheckData.data.result.spam == 0) {
          doSuccess(true)
        } else {
          wx.showToast({
            icon: "none",
            title: '内含敏感词汇',
          })
        }
      }
    })
  })
}



/**
 * module.exports用来导出代码
 * js文件中通过var call = require("../util/request.js")  加载
 * 在引入引入文件的时候"  "里面的内容通过../../../这种类型,小程序的编译器会自动提示,因为你可能
 * 项目目录不止一级,不同的js文件对应的工具类的位置不一样
 */

module.exports.imgCheck = imgCheck;
module.exports.textCheck = textCheck;

在对应的文件中通过引入js文件中var call = require("../util/request.js")  加载 语法只需要返回如下举例:

call.textCheck(this.data.text,(resCheck)=>{
      if(resCheck){
        //我们已经审核通过的下一步在这
        }
})