前段時間微信加強了小程序內容安全審查力度,由於“表情小作坊”未接入相關審查能力被封了,藍瘦~ 查看小程序的文檔發現微信還是很人性化的,提供了內容審查的開放能力,支持雲調用,不需要服務器、後臺開發就可以接入內容審查能力,開心
接入過程還是遇到了一點問題,這裏記錄下,希望大家少浪費點時間
雲調用的文檔: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"
]
}
}