查看华为云官方文档,虽然详细,但是很散,对刚刚接触的人不友好,最近项目需要华为云的人脸识别功能,看文档有点头大,很多东西分的很散。
整理了一下:
1、获取IAM用户Token
2、用Token去使用华为云的接口
我的项目是小程序,测试demo如下:
//获取凭证
onLoad: function (options) {
const that = this
wx.request({
//项目的真正接口,通过字符串拼接方式实现
url: "https://iam.cn-east-3.myhuaweicloud.com/v3/auth/tokens",//cn-east-3 为项目名,自己更换自己的
header: {
"Content-Type": "application/json;charset=utf8",
},
data: {
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "" //domain name
},
"name": "",//华为云user name
"password": ""//你华为云账号密码password
}
}
},
"scope": {
"project": {
"name": "cn-east-3"//cn-east-3 为项目名,自己更换自己的
}
}
}
},
method: 'POST',
success: function (res) {
//直接将返回的数据传入
// console.log(res.header);//键为"X-Subject-Token"的value 是token ,保存下来加入华为云其他接口请求头
},
fail: function (err) {
console.log(err);
},
})
},
如华为云人脸对比接口:
注:在项目名对于地区开通相应的服务,开通地区不对,请求不了。
wx.request({
//项目的真正接口,通过字符串拼接方式实现
url: "https://face.自己项目名.myhuaweicloud.com/v2/ 这个参数看文档/face-compare",
header: {
"Content-Type": "application/json",
"X-Auth-Token": that.data.token //这个就是刚才获取到的Token
},
data: {
"image1_url": ,
"image2_url": //两个地址都是华为云Obs路径的图片地址 可以看文档
},
method: 'POST',
success: function (res) {
if(res.statusCode!=200) return
// clearTimeout(time)
wx.hideLoading()
let {similarity}=res.data//similarity这个为两个图片的相似度 0-1
let num=similarity*100
that.setData({
xsdvlaue:num.toFixed(2)
})
//直接将返回的数据传入
// console.log(res);
},
fail: function (err) {
console.log(err);
},
})
最后,如果上面有什么技术问题欢迎指出,如果有什么问题可以私聊我。