微信小程序 使用雲調用進行內容安全審查

前段時間微信加強了小程序內容安全審查力度,由於“表情小作坊”未接入相關審查能力被封了,藍瘦~ 查看小程序的文檔發現微信還是很人性化的,提供了內容審查的開放能力,支持雲調用,不需要服務器、後臺開發就可以接入內容審查能力,開心

接入過程還是遇到了一點問題,這裏記錄下,希望大家少浪費點時間

雲調用的文檔:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#%E4%BA%91%E8%B0%83%E7%94%A8
雲開發步驟:

1.開通雲開發

在這裏插入圖片描述
由於小程序是新支持的雲開發,所以需要先按照文檔開通雲開發,創建雲開發的環境id後續會用到,在雲控制檯可以找到環境id
在這裏插入圖片描述

2.添加雲函數

如 項目目錄下新建雲函數目錄“cloudfunctions”,在project.config.json中註冊該目錄,註冊後該目錄會有云圖標
在這裏插入圖片描述
然後在雲函數根目錄右鍵新建雲函數
在這裏插入圖片描述
添加雲函數成功後,需要在文檔中找到對應雲函數的相關調用方法和權限配置
如:security.imgSecCheck
可以看到它支持雲調用,下拉查看該雲函數雲調用的相關配置
在這裏插入圖片描述
在這裏插入圖片描述

  • 雲函數代碼
    在這裏插入圖片描述

  • 雲函數權限配置
    config.json文件需要新建在這裏插入圖片描述

3.小程序端調用

需要注意:env的值就是之前雲函數環境id
在這裏插入圖片描述

4.最後

在雲函數上右鍵點擊上傳並部署 (之前沒有上傳部署,導致無論怎麼調用都返回成功 😓)
在這裏插入圖片描述
接下來就大功告成了
下面代碼 以供cv

圖片審查:

  • 小程序調用
			wx.cloud.init({
              env: '環境id'
            })
            wx.cloud.callFunction({
              name: "imgseccheck",
              data: {
                value: buffer.data
              }
            }).then(
              imgRes => {
                wx.hideLoading()
                //console.log(imgRes)
                if (imgRes.result.errCode == 87014) {
                  wx.showToast({
                    title: '圖片含有違法違規內容',
                    icon: 'none',
                    duration: 1500
                  })
                } else {
                  //圖片合法
                  
                }
              }
            ).catch(error => {
              wx.hideLoading()
              wx.showToast({
                title: '圖片含有違法違規內容',
                icon: 'none',
                duration: 1500
              })
            })
  • imgseccheck index.js
// 雲函數入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: '環境id'
})

// 雲函數入口函數
exports.main = async(event, context) => {
  const {
    value
  } = event;
  try {
    const res = await cloud.openapi.security.imgSecCheck({
      media: {
        contentType: 'image/*',
        value: Buffer.from(value)
      }
    })
    return res;
  } catch (err) {
    return err;
  }
}
  • imgseccheck config.json
{
  "permissions": {
    "openapi": [
      "security.imgSecCheck"
    ]
  }
}

文字審查

  • 小程序調用
    注意:在catch中捕獲
	wx.cloud.init({
      env: '環境id'
    })
    wx.cloud.callFunction({
      name: "msgseccheck",
      data: {
        content: content
      }
    }).then(
      msgRes => {
        //console.log(msgRes)
        //內容正常
      }
    ).catch(error => {
      wx.showToast({
        title: '文字含有違法違規內容',
        icon: 'none',
        duration: 1500
      })
    })
  • msgseccheck index.js
// 雲函數入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: '環境id'
})

// 雲函數入口函數
exports.main = async(event, context) => {
  try {
    const res = await cloud.openapi.security.msgSecCheck({
      content: event.content
    })
    return res;
  } catch (err) {
    return err;
  }
}
  • msgseccheck config.json
{
  "permissions": {
    "openapi": [
      "security.msgSecCheck"
    ]
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章