资讯专栏INFORMATION COLUMN

javascript实现腾讯AI开放平台,调用API时的接口鉴权,生成sign合法签名

crelaber / 3609人阅读

摘要:整个流程图在网上查了很多,但看到有人用前端做腾讯开放平台,生成签名的,所以闲着就自己弄了一下。这样就可以请求腾讯开放平台上的。注意如果使用身份证接口,字段是的的时候,格式问题不需要前面。

整个流程图

在网上查了很多,但看到有人用javascript前端做腾讯AI开放平台,生成签名的,所以闲着就自己弄了一下。实现的流程是和官方的实例是一样的,不过官方只给了PHP和Pythonr的方式。

大致的流程是:字典排序 -> 拼接URL键值对(value部分需要URL编码) -> 拼接app_key -> MD5运算 -> 转换大写

字典排序:《javascript实现PHP字典排序ksort》

拼接URL键值对:

// 拼按URL键值对
Object.keys(aa).forEach((key, i) => {
  if (aa[key] !== ""){
    bb += key + "=" + encodeURIComponent(aa[key]) + "&"
  }
});

拼接app_key:

// 拼接app_key
let cc = `${bb}app_key=${config.tencentKey}`

MD5运算:

const MD5 = require("../../static/javascripts/md5");
// MD5运算
let dd = MD5(cc)

// 转换大写

// 转换大写
let sign = dd.toUpperCase()
最后,得出sign合法签名。这样就可以请求腾讯API开放平台上的API。

【注意:】
如果使用身份证OCR接口,image字段是的base64的时候,格式问题(不需要前面data:image/jpg;base64,)。如果使用微信小程序,可以下得到base64格式:

wx.chooseImage({
    sizeType: ["original", "compressed"],
    sourceType: ["album", "camera"],
    success: function (res) {
        wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0], //选择图片返回的相对路径
          encoding: "base64", //编码格式
          success: res => { //成功的回调
            console.log("data:image/png;base64," + res.data)
          }
        })
    }
})

其他方法:

/**
 * JS生成随机字符串
 * @param {Number} len 字节长度
 */
export function randomString(len) {
  len = len || 32;
  var $chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678";    /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
  var maxPos = $chars.length;
  var pwd = "";
  for (var i = 0; i < len; i++) {
    pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  }
  return pwd;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103782.html

相关文章

  • 腾讯AI开放平台接口调用指南

    摘要:最近无意发现腾讯开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的。腾讯开放平台第一行和第四行分别为我在腾讯平台上创建的测试应用的和。 最近无意发现腾讯AI开放平台上提供了大量好玩的人工智能云服务,而且是完全免费的。只需要用QQ号登录即可。这么好的东西,作为一个程序员,当然要试试了! showImg(https://segmentfault.com/img/remote/146...

    fredshare 评论0 收藏0
  • Java快速开发第三方——腾讯人工智能AI接入详解(大专狗终章)

    摘要:微信接入采用的第三方接入微信,具体功能接入还是要看微信公众号开发文档,架构则是上面所说的。吐槽一下,腾讯包括微信,他们的文档确实没有阿里做得好。人脸融合结尾这一块腾讯人工智能接入已解释完毕。 要想骑自行车,首先不是要学会如何造自行车,而是学会如何骑行 前言 结合腾讯AI开放平台群里的demo解析,QQ群号:581197347。这个项目是我只花费两天时间做完的,采用的技术是SpringB...

    evin2016 评论0 收藏0
  • 移动端快速接入语音播报

    摘要:最近在忙一个小程序蓝牙秤的项目,开发环境为小程序,上传物料的时候需要用到语音播报即将文字转换为语音,于是开始研究,试了几个,最终使用腾讯的来完成这个功能。 最近在忙一个小程序蓝牙秤的项目,开发环境为php+小程序,上传物料的时候需要用到语音播报(即将文字转换为语音),于是开始研究,试了几个,最终使用腾讯AI的API来完成这个功能。官网上(http://ai.qq.com/)也有相应教程...

    elarity 评论0 收藏0
  • Python公众号开发(二)—颜值检测

    摘要:上篇文章,我们把自己的程序接入了微信公众号,并且能把用户发送的文本及图片文件原样返回。微信的机制,我们的程序必须在内给出响应。上篇微信公众号开发小白篇一 上篇文章,我们把自己的程序接入了微信公众号,并且能把用户发送的文本及图片文件原样返回。今天我们把用户的图片通过腾讯的AI平台分析后再返回给用户。 为了防止我的文章被到处转载,贴一下我的公众号【智能制造社区】,欢迎大家关注。 githu...

    ?xiaoxiao, 评论0 收藏0

发表评论

0条评论

crelaber

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<