微信小程序调用百度人脸API

百度人脸官方文档:https://ai.baidu.com/docs#/Face-Set-V3/top

由于最近做的一个小项目需求,需要使用人脸识别,故而打算使用百度人脸识别API。项目首先用户需要以人脸方式注册,再查看官方API时,发现一直无法得到它分配的access_token.我要调用人脸注册API,必须先得到access_token.

它的官方文档强调推荐POST请求获得access_token

最后面把POST换成GET请求,即可获取accesss_token

/*获取token*/
   getAccessToken:function(){
     var that = this;
     console.log("hello");
     //acess_token获取,qs:需要多次尝试
     wx.request({
       url: 'https://aip.baidubce.com/oauth/2.0/token', // 仅为示例,并非真实的接口地址
       method: 'GET',
       data: {
         grant_type: 'client_credentials',
         client_id: '1QHjRvG6cHZWqdN9xGRWcSEw',
         client_secret: '7eLWG2q4GWqjMCjAlUyEGLnbIoZevW1W'//自己的
       },
       header: {
         'Content-Type': 'application/json' // 默认值
       },
       success(res) {
         that.setData({
           token: res.data.access_token//获取到token
         })
         console.log(res);
         console.log("token:" + res.data.access_token);
       }
     })
   },

 

 

首先,你需要在百度AI开放平台注册账号并创建一个人脸识别应用,获取API Key和Secret Key。 然后,在微信小程序中使用wx.cloud.downloadFile()方法下载云存储中的文件,并获取到文件的临时路径。 接着,将文件的临时路径作为参数,调用百度人脸识别API中的人脸检测接口,获取到人脸位置信息。 最后,将人脸位置信息作为参数,调用百度人脸识别API中的人脸注册接口,获取到face_token。具体实现过程如下: 1. 下载云存储中的文件: ```javascript wx.cloud.downloadFile({ fileID: 'your fileID', success: res => { const filePath = res.tempFilePath // 调用人脸识别API detectFace(filePath) }, fail: err => { console.error(err) } }) ``` 2. 调用人脸检测接口,获取人脸位置信息: ```javascript function detectFace(filePath) { wx.showLoading({ title: '正在检测中...', mask: true }) wx.request({ url: 'https://aip.baidubce.com/rest/2.0/face/v3/detect', data: { image: wx.getFileSystemManager().readFileSync(filePath, 'base64'), image_type: 'BASE64', face_field: 'location' }, header: { 'Content-Type': 'application/json' }, method: 'POST', success: res => { wx.hideLoading() if (res.data.error_code) { wx.showToast({ title: res.data.error_msg, icon: 'none' }) return } const faceToken = res.data.result.face_list[0].face_token // 将faceToken保存到数据库或其他地方 }, fail: err => { wx.hideLoading() console.error(err) } }) } ``` 3. 调用人脸注册接口,获取face_token: ```javascript function registerFace(faceLocation) { wx.showLoading({ title: '正在注册中...', mask: true }) wx.request({ url: 'https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add', data: { image: wx.getFileSystemManager().readFileSync(filePath, 'base64'), image_type: 'BASE64', group_id: 'your group_id', user_id: 'your user_id', face_token: faceToken, liveness_control: 'HIGH', action_type: 'REPLACE' }, header: { 'Content-Type': 'application/json' }, method: 'POST', success: res => { wx.hideLoading() if (res.data.error_code) { wx.showToast({ title: res.data.error_msg, icon: 'none' }) return } const faceToken = res.data.result.face_token // 将faceToken保存到数据库或其他地方 }, fail: err => { wx.hideLoading() console.error(err) } }) } ``` 注意:在调用人脸识别API时,需要将API Key和Secret Key加入到请求头中,并且需要将图片转换成base64格式。同时,需要注意API中各个参数的含义和使用方法,具体可以参考百度AI开放平台的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值