本帖最后由 MMCGN 于 2023-8-29 00:36 编辑
以下是腾讯云市场的API对接代码,里面涉及到数字签名,请问下,如何把这个JavaScript代码用活字格去请求,然后把返回的数据保存到活字格单元格中
我现在能做到的是,获得了secretId、secretKey,
但是不知道这个请求key(查询关键词)如何绑定到活字格的页面单元格,并且把下面JavaScript获取到的JSON数据导入到活字格页面,麻烦帮我解决一下
/**
* npm install crypto-js request
*/
var CryptoJS = require("crypto-js");
var request = require('request');
var querystring = require('querystring');
// 云市场分配的密钥Id
var secretId = "XXX";
// 云市场分配的密钥Key
var secretKey = "XXX";
var source = "market";
// 签名
var datetime = (new Date()).toGMTString();
var signStr = "x-date: " + datetime + "\n" + "x-source: " + source;
var sign = CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(signStr, secretKey))
var auth = 'hmac id="' + secretId + '", algorithm="hmac-sha1", headers="x-date x-source", signature="' + sign + '"';
// 请求方法
var method = "GET";
// 请求头
var headers = {
"X-Source": source,
"X-Date": datetime,
"Authorization": auth,
}
// 查询参数
var queryParams = {
"key": ""}
// body参数(POST方法下)
var bodyParams = {
}
// url参数拼接
var url = "https://service-arvoio7a-1251498974.gz.apigw.tencentcs.com/release/so";
if (Object.keys(queryParams).length > 0) {
url += '?' + querystring.stringify(queryParams);
}
var options = {
url: url,
timeout: 5000,
method: method,
headers: headers
}
if (['POST', 'PUT', 'PATCH'].indexOf(method) != -1) {
options['body'] = querystring.stringify(bodyParams);
options['headers']['Content-Type'] = "application/x-www-form-urlencoded";
}
request(options, function (error, response, body) {
if (error !== null) {
console.log('error:', error);
return;
}
console.log(body);
});
|