文檔地址:
1.在文檔中找到 [API 3.0 Explorer]點(diǎn)擊進(jìn)入
2.填寫個人密鑰,以及根據(jù)需要填寫選填參數(shù)
-
這里因為需要獲得人臉屬性信息,所以參數(shù)NeedFaceAttributes填1
QQ拼音截圖未命名.jpg
3.右邊選擇Node.js后復(fù)制代碼
4.在小程序項目中創(chuàng)建云函數(shù)
粘貼代碼,并修改
// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const tencentcloud = require("tencentcloud-sdk-nodejs");//修改路徑,然后上傳
function syncFaceDetect(imgBase64) {
const IaiClient = tencentcloud.iai.v20180301.Client;
const models = tencentcloud.iai.v20180301.Models;
const Credential = tencentcloud.common.Credential;
const ClientProfile = tencentcloud.common.ClientProfile;
const HttpProfile = tencentcloud.common.HttpProfile;
let cred = new Credential("AKID26wX0FwzsfasdfP", "Xpredfdfdfdfdfdfdfdfd");
let httpProfile = new HttpProfile();
httpProfile.endpoint = "iai.tencentcloudapi.com";
let clientProfile = new ClientProfile();
clientProfile.httpProfile = httpProfile;
let client = new IaiClient(cred, "ap-guangzhou", clientProfile);
let req = new models.DetectFaceRequest();
let params = '{"Image":"' + imgBase64 + '","NeedFaceAttributes":1,"NeedQualityDetection":1}' //上傳的圖片類型和地址
req.from_json_string(params);
// promise封裝結(jié)果
return new Promise((resolve, reject) => {
client.DetectFace(req, function (errMsg, response) {
if (errMsg) {
reject(errMsg);
return;
}
resolve();
});
})
}
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
// event事件對象,返回調(diào)用云函數(shù)后的所有數(shù)據(jù),解構(gòu)賦值給imgBase64
let { imgBase64 } = event;
let res = await syncFaceDetect(imgBase64);
return res;
}
5.右鍵上傳云函數(shù),并在云函數(shù)目錄下手動安裝依賴
- 安裝后在命令行中執(zhí)行 node.js index,若提示安裝依賴,根據(jù)提示安裝即可,若返回接口的參數(shù)則成功
npm install tencentcloud-sdk-nodejs --save
6.在需要使用人臉檢測的頁面調(diào)用人臉檢測云函數(shù)
- 封裝將上傳的圖片轉(zhuǎn)為base64格式
- 封裝云函數(shù)
//轉(zhuǎn)換base64
base64(imgPath) {
const fs = wx.getFileSystemManager();
return new Promise((resolve, reject) => {
fs.readFile({
filePath: imgPath,
encoding: 'base64',
success(res) {
resolve(res.data)
},
fail(err) {
reject(res);
}
})
})
},
//調(diào)用人臉檢測
faceDetectAPI(imgBase64) {
return new Promise((resolve, reject) => {
wx.cloud.callFunction({
name: "faceDetect",
data: {
//傳參給云函數(shù)
imgBase64
},
success: (res) => {
resolve(res);
},
fail(err) {
reject(err)
}
})
})
},
detect(){
this.base64(this.data.previewImg).then(res => {
return this.faceDetectAPI(res)
}).then(res => {
console.log(res)
}
}
