调用前准备
打开百度智能云官网,点击用户中心
名称和描述都没有特殊要求,点击创建
点击查看应用详情我们会看到百度给予的API Key和Serect Key,你能通过这两个Key获取token
token的获取方法:百度鉴权认证机制
正式调用
编写调用api,并同时实现选取图片和识别的功能的函数
getToken(res) { //获取账号权限
wx.request({ //请求百度api接口
url: 'https://aip.baidubce.com/oauth/2.0/token',
data: { //请求时传送我们的账号信息进行认证
grant_type: 'client_credentials',
client_id: '**************',//APIKey
client_secret: '****************',//SecretKey
},
success(res) {
console.log(res.data.access_token)
let token = res.data.access_token //保存token,代表你权限的信息
//console.log('选择照片')
wx.chooseImage({ //选取照片
count: 1,
sizeType: ['original', 'compressed'],
sourseType: ['album', 'camera'],//本地或拍照选取
success(res) {
console.log(res)
let url = res.tempFilePaths[0] //获取图片地址
wx.setStorageSync("res_imgurl", url);//缓存照片
//图片转码为base64编码形式
wx.getFileSystemManager().readFile({
filePath: url,
encoding: 'base64',
success(res) {
//console.log('上传照片成功准备转码')
let base64 = res.data //保存转码后数据
//console.log('开始识别')
wx.request({ //请求识花接口
url: 'https://aip.baidubce.com/rest/2.0/image-classify/v1/plant',
header: {
"Content-type": "application/x-www-form-urlencoded",//决定用哪种post请求,是固定的
},
method: 'post', //请求固定为post请求
data: { //请求时需要上传的数据
image: base64, //图片编码数据
access_token: token,//获取的token权限
baike_num: 1 //想得到的百度百科数量
},
success: function (res) {
//console.log('识别成功跳转页面')
console.log(res.data.result)//控制台输出识别后得到的数据中的结果
}
})
}
})
}
})
}
})
},
调用结果
触发getToken函数得到以下结果