Node.js使用科大讯飞web API实现人脸对比

目录

1.先吧需要的模块引入进来 这里我发送http请求使用的是requset模块

2.对请求进行签名

 3.请求参数

4.发送请求 

附上完整代码吧 


最近无事研究了一下人脸对比,白嫖了一下科大讯飞的人脸对比API,但是文档里只有java和python的demo并没有node的demo,而我又只是个小前端 只会写写node,所以只能自己研究咯

先根据文档所说做好准备工作,注册科大讯飞开发者,获取服务接口认证信息

科大讯飞的API很好获取 先去注册账户再实名认证就可以得到免费的API,每天500次,调试学习够用了

按照文档一步一步来,

1.先吧需要的模块引入进来 这里我发送http请求使用的是requset模块

封装一个方法读取图片base64编码

// 引入服务端http/https请求模块
const request = require("request");
// hmac-sha256算法要使用的模块
const crypto = require("crypto");
// nodejs路径模块
const path = require("path");
// nodejs自带文件读写模块
const fs = require("fs");

// 图片转base64
function parse(file) {
  // 获取原始文件地址
  let filePath = path.resolve(file);
  // 读取文件数据
  let data = fs.readFileSync(filePath);
  // 获取图片base64编码
  data = Buffer.from(data).toString("base64");
  return data;
}

这里重要说一下hmac-sha256算法查了好多资料最后还是使用了node自带的crypto模块

其他的加密出来多多少少有点差异

2.对请求进行签名

在调用业务接口时,请求方需要对请求进行签名,服务端通过签名来校验请求的合法性。 通过在请求地址后面加上鉴权相关参数的方式,参数具体如下: 

https://api.xf-yun.com/v1/private/s67c9c78c?authorization=YXBpX2tleT0iYXBpa2V5WFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgiLCBhbGdvcml0aG09ImhtYWMtc2hhMjU2IiwgaGVhZGVycz0iaG9zdCBkYXRlIHJlcXVlc3QtbGluZSIsIHNpZ25hdHVyZT0iSk5od3prMWtLYjUwdUVGbEUxS2xCbk83K09NTjNZUk5LZVFsYzVMYVltTT0i&host=api.xf-yun.com&date=Fri%2C+17+Jul+2020+06%3A26%3A58+GMT

代码如下

注意:signature原始字段由 host,date,request-line三个参数按照格式拼接成,
拼接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丝网如风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值