Node.js环境调用百度智能云(百度云)api鉴权认证三步走

这篇具有很好参考价值的文章主要介绍了Node.js环境调用百度智能云(百度云)api鉴权认证三步走。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

方式一 :Postman脚本的方式生成v1版本的认证字符串

Node.js环境调用百度智能云(百度云)api鉴权认证三步走,node.js

Postman脚本下载
下载Postman pre-request Script 设置 Authorization 示例脚本

方式二:在线签名工具生成 (试用于验证编程字符串签名是否有错误)

签名计算工具 https://cloud.baidu.com/signature/index.html

百度智能云提供了在线生成签名工具,用户仅需填写必要请求信息、访问密钥(包含访问密钥ID(AK)和秘密访问密钥(SK)),可快速生成认证字符串。

Node.js环境调用百度智能云(百度云)api鉴权认证三步走,node.js

方式三 编程生成认证字符串(适合最终集成自己系统)

文档地址 https://cloud.baidu.com/doc/Reference/s/njwvz1yfu go
Node.js环境调用百度智能云(百度云)api鉴权认证三步走,node.js

你可以运行下面的命令来安装所有依赖:文章来源地址https://www.toymoban.com/news/detail-847258.html

npm install crypto axios

客悦·智能外呼平台 AIOB 获取机器人列表接口node.js示例代码

// robotList.js
// npm install crypto axios
const crypto = require('crypto');
const axios = require('axios');
const url = require('url');
const util = require('util');

function getUTC() {
  const date = new Date();

  const year = date.getUTCFullYear();
  const month = String(date.getUTCMonth() + 1).padStart(2, '0');
  const day = String(date.getUTCDate()).padStart(2, '0');
  const hours = String(date.getUTCHours()).padStart(2, '0');
  const minutes = String(date.getUTCMinutes()).padStart(2, '0');
  const seconds = String(date.getUTCSeconds()).padStart(2, '0');

  return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}Z`;
}
function generateCanonicalUri(urlString) {
  let parsedUrl = url.parse(urlString, true);
  return parsedUrl.path;
}

/**
 * 获取机器人列表接口
 * GET https://aicc.bce.baidu.com/api/v1/robot/list
 * 文档地址 https://cloud.baidu.com/doc/CCC/s/skt9hds4y
 */
function main() {
  //  1).AK/SK、host、method、URL绝对路径、querystring
  let AK = '<管理后台AccessKey>'; //用户的AK(AccessKey)
  let SK = '<管理后台SecretKey>'; //用户的SK(SecretKey)
  let ccApiAuthV1 = 'cc-api-auth-v1' // Authorization 前缀(bce-auth-v1/cc-api-auth-v1 具体看文档)

  let host = 'aicc.bce.baidu.com';
  let URL = 'api/v1/robot/list';
  let query = '';
  let method = 'GET';

  // 拼接完整的 URL
  let fullURL = `https://${host}/${URL}${query}`;

  const signedHeaders = 'host';
  //  2).x-bce-date
  let x_bce_date = getUTC();
  console.log('UTC 时间:' + x_bce_date);
  //  3).header和signed Headers
  let headers = {
    Host: host,
    'content-type': 'application/json;charset=utf-8',
    'x-bce-date': x_bce_date,
  };
  //  4).认证字符串前缀
  let authStringPrefix = ccApiAuthV1 + '/' + AK + '/' + x_bce_date + '/' + '1800';
  //  5).生成Canonical Request

  //  5).1生成Canonical URL
  let canonicalUri = generateCanonicalUri(fullURL);
  console.log('Canonical Uri: ' + canonicalUri);
  //  5).2生成Canonical QueryString
  let canonicalQueryString = query;
  //  5).3生成Canonical Headers
  // 遍历对象的键值对,并获取键和对应的值
  const canonicalHeaders = `host:${host}`;

  console.log(`Canonical Headers:[${JSON.stringify(canonicalHeaders)}]`);
  //  5).4拼接得到Canonical Request
  const canonicalRequest = method + '\n' + canonicalUri + '\n' + canonicalQueryString + '\n' + canonicalHeaders;
  console.log(`Canonical Request:[${JSON.stringify(canonicalRequest)}]`
  );
  //	6).生成signing Key
  // 生成signingKey
  const signingKey = crypto
    .createHmac('sha256', SK)
    .update(authStringPrefix)
    .digest('hex');
  console.log(`signingKey: ${signingKey}`);
  // 生成Signature
  const signature = crypto
    .createHmac('sha256', signingKey)
    .update(canonicalRequest)
    .digest('hex');
  console.log(`Signature: ${signature}`);
  //	8).生成Authorization并放到header里
  headers['Authorization'] = `${authStringPrefix}/${signedHeaders}/${signature}`;
  console.log(headers['Authorization']);
  //	9).发送API请求并接受响应
  // 发送 Axios 请求

  axios
    .request({
      method: method,
      url: fullURL,
      headers: headers,
    })
    .then(response => {
      console.log('Response:', util.inspect(response.data, false, null, true));
    })
    .catch(error => {
      console.error('Error:', error.response.data);
    });
}

main();

到了这里,关于Node.js环境调用百度智能云(百度云)api鉴权认证三步走的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何调用百度地图API

      要调用百度地图API,步骤操作如下 注册并创建一个API密钥。您可以在百度地图API控制台上创建您的密钥。 选择要使用的API服务。百度地图API提供了多种服务,包括地图展示、路线规划、地点搜索、实时交通等。您可以在百度地图API控制台上查看所有可用的服务。 在调用

    2024年02月09日
    浏览(29)
  • 百度OCR api调用代码

    import requests import json import base64, urllib API_KEY = \\\'xx\\\' SECRECT_KEY = \\\'xx\\\' pic_name = \\\"img.jpg\\\" def ocr_baidu():     \\\"\\\"\\\"invoke token\\\"\\\"\\\"     url = \\\'https://aip.baidubce.com/oauth/2.0/token\\\'     body = {\\\'grant_type\\\': \\\'client_credentials\\\',             \\\'client_id\\\': API_KEY,             \\\'client_secret\\\': SECRECT_KEY             }  

    2024年02月21日
    浏览(26)
  • 百度千帆大模型文心一言api调用

    demo工程(csdn上传总是报错461, 只好使用百度网盘了) 链接:https://pan.baidu.com/s/1EXbQDBMMNh1pyMIKwCmnow?pwd=7891 提取码:7891 https://login.bce.baidu.com/ https://cloud.baidu.com/product/wenxinworkshop 创建应用成功后,可以获取到API Key和Secret Key api调用是按token(字数)收费的,不开通收费无法使用。 Java发送

    2024年02月09日
    浏览(40)
  • 用python实现调用百度图片搜索的API

    前言: 这段代码是一个简单的图片爬虫程序 它可以通过输入,在百度图片中搜索相关图片,并返回一张随机的图片。 代码使用Flask框架搭建了一个简单的Web应用,将用户输入的作为参数传递给爬虫程序,然后从百度图片中获取相关图片的URL 并随机选择一张返回

    2024年02月11日
    浏览(53)
  • 前后端的身份认证【Node.js】

    目前主流的 Web 开发模式有两种,分别是: (1)基于 服务端渲染 的传统 Web 开发模式 (2)基于 前后端分离 的新型 Web 开发模式 服务端渲染 的传统 Web 开发模式 服务端渲染的概念:服务器发送给客户端的HTML页面,实在 服务器通过字符串的拼接 , 动态生成 的。因此,客户

    2023年04月09日
    浏览(37)
  • 【微信小程序调用百度API实现图像识别功能】----项目实战

    本章主要讲述: 如何更快的上手小程序 如何搭建一个页面以及跳转到另一个页面 如何调用百度API接口实现图像识别技术 如何在微信小程序的后台添加合法域名        私信获取源码,有问题可以关注留言或私信,计算机毕业设计(小程序,网页设计,数据库,php开发等) 目录

    2024年02月09日
    浏览(48)
  • 调用百度文心AI作画API实现中文-图像跨模态生成

    乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。 研究方向:机器视觉与人工智能。 电子邮件:1078914066@qq.com 文心ERNIE-ViLG,一款适合中文的跨模态AI绘画大模型。 论文地址:https://arxiv.org/pdf/2112.15283.pdf 体验连接:https://wenxin.baidu.com/ern

    2024年02月03日
    浏览(38)
  • 【微信小程序调用百度API实现图像识别实战】----前后端分离

    前言:基于之前发布的文章【微信小程序调用百度API实现图像识别功能】----项目实战稍微进行了升级改进,主要新增了后端,数据库,实现对于虫害识别,返回防治建议等信息。 本文主要讲述: 如何创建数据库 如何连接数据库 如何创建后端服务 如何调用后端服务 目录  一

    2024年04月25日
    浏览(34)
  • 从零开始学习调用百度地图网页API:三、鼠标点击绘图功能

    注:需要将 你的ak 替换,ak从百度地图官网注册申请,选择浏览器类型api。 绘制线段 显示对象的位置信息 显示任意点坐标 最初的实现方法,在 显示坐标 按钮多次被点击后,会导致再点击 不显示 按钮,无法remove事件。依然会在地图上点击后出现坐标信息。 这是因为addEve

    2024年02月07日
    浏览(27)
  • 一天时间完成Python入坑(开发环境搭建、excel解析、exe打包三步走)

            早就知道Python好,Python妙,Python用起来呱呱叫。工作上一直没有什么用得上Python的必要性,就一直没有接触,本次终于来了机会: 【图新地球桌面端要对外开放Python API】 ,开放图新地球的三维场景构建能力给到用户,用户可以在图新地球现有功能的基础上专注于做

    2024年02月10日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包