• 阿里云人脸比对API封装


     这是根据封装是根据阿里云官方给的Demo进行修改的,当时是因为编写微信小程序云函数需要使用到阿里云人脸比对接口,才对其进行封装的。

    记录下来,方便下次使用。

    复制下来可以直接使用。

    用到的依赖如下,使用npm安装:

    • request
    • url
    • crypto
      1 /**
      2  * 文件说明:阿里云人脸比对API封装
      3  */
      4 
      5 var request = require('request');
      6 var url = require('url');
      7 var crypto = require('crypto');
      8 var date = new Date().toUTCString()
      9 
     10 /////////////////////////////////////////////////////////////////////////
     11 /**
     12  * 配置信息
     13  * ak_id :阿里云控制台获取的AccessKey
     14  * ak_secret :阿里云控制台获取的AccessKeySecret 
     15  * Api_Url :阿里云控制台获取Api接口地址
     16  */
     17 // AccessKey
     18 var ak_id = '';
     19 // AccessKeySecret 
     20 var ak_secret = '';
     21 // APIURL
     22 var Api_Url = ''
     23 
     24 /**
     25  * 读取本地图片并转base64编码
     26  */
     27 // 图片1
     28 var fs = require("fs");
     29 var filePath = "01.jpg";
     30 var imageData = fs.readFileSync(filePath);
     31 var imageBase64 = imageData.toString("base64");
     32 //图片2
     33 var fs = require("fs");
     34 var filePath = "02.jpg";
     35 var imageData = fs.readFileSync(filePath);
     36 var imageBase64_2 = imageData.toString("base64");
     37 
     38 var options = {
     39     url: Api_Url,
     40     method: 'POST',
     41     body: '{"type": "1", "content_1":"' + imageBase64 + '","content_2":"' + imageBase64 + '"}',
     42     headers: {
     43         'accept': 'application/json',
     44         'content-type': 'application/json',
     45         'date': date,
     46         'Authorization': ''
     47     }
     48 };
     49 /////////////////////////////////////////////////////////////////////////
     50 
     51 
     52 md5 = function (buffer) {
     53     var hash;
     54     hash = crypto.createHash('md5');
     55     hash.update(buffer);
     56     return hash.digest('base64');
     57 };
     58 
     59 sha1 = function (stringToSign, secret) {
     60     var signature;
     61     return signature = crypto.createHmac('sha1', secret).update(stringToSign).digest().toString('base64');
     62 };
     63 
     64 var body = options.body || '';
     65 var bodymd5;
     66 if (body === void 0 || body === '') {
     67     bodymd5 = body;
     68 } else {
     69     bodymd5 = md5(new Buffer(body));
     70 }
     71 
     72 var stringToSign = options.method + "
    " + options.headers.accept + "
    " + bodymd5 + "
    " + options.headers['content-type'] + "
    " + options.headers.date + "
    " + url.parse(options.url).path;
     73 
     74 var signature = sha1(stringToSign, ak_secret);
     75 var authHeader = "Dataplus " + ak_id + ":" + signature;
     76 options.headers.Authorization = authHeader;
     77 
     78 // 封装函数
     79 function AliFace(options) {
     80     let promise = new Promise(function (resolve, reject) {
     81         request(options, (error, response, body) => {
     82             // 失败
     83             if (error) {
     84                 console.log("error", error)
     85                 reject()
     86             }
     87             console.log("step4-response body:", response.statusCode, body)
     88             console.log(typeof (body))
     89             // 成功
     90             // 注意:这里的body是string类型
     91             resolve(body)
     92         })
     93     })
     94     return promise;
     95 }
     96 
     97 
     98 
     99 /**
    100  * 调用接口进行测试
    101  */
    102 AliFace(options).then(
    103     function (res) {
    104         console.log(res)
    105     }
    106 )
  • 相关阅读:
    阿里云云计算认证ACP模拟考试练习题10套:第1套模拟题分享
    as3+java+mysql(mybatis) 数据自动工具(二)
    自动化登录账号密码并截图保存
    自动化读取csv文件
    自动化读取磁盘文件并逐一在百度上面进行搜索
    自动化打开百度搜索
    python自动化--数据驱动(从文件中提取)
    pycharm 命令行方式
    软件测试工程师 总结
    八大元素定位代码
  • 原文地址:https://www.cnblogs.com/LiangSenCheng/p/10922979.html
Copyright © 2020-2023  润新知