找回密码
 立即注册

QQ登录

只需一步,快速开始

MMCGN

中级会员

34

主题

140

帖子

510

积分

中级会员

积分
510
MMCGN
中级会员   /  发表于:2023-8-29 00:23  /   查看:899  /  回复:5
1金币
本帖最后由 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);
});


最佳答案

查看完整内容

第五十章 JavaScript编程 - 活字格V9帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn) 没有具体的对接文档链接,看了一下js,应该需要引入一些JS文件, 至于把数据设置到活字格单元格上,可以用, Forguncy[/backcolor].[/backcolor]Page[/backcolor].getCell(name).setValue(value);[/backcolor] json导入到活字格可以用命令。

5 个回复

倒序浏览
最佳答案
最佳答案
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-8-29 00:23:48
来自 6#
第五十章 JavaScript编程 - 活字格V9帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)

没有具体的对接文档链接,看了一下js,应该需要引入一些JS文件,

至于把数据设置到活字格单元格上,可以用,
Forguncy.Page.getCell(name).setValue(value);


json导入到活字格可以用命令。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
David.Zhong讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-8-29 09:10:27
2#
回复 使用道具 举报
吴小胖讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2023-8-29 09:31:46
3#
大佬,您要学会看文档,里面都有详细的说明。借用一句厅长曾经说我的话:你能不能认真看文档!!!【小胖课堂】开工第一讲:认真读文档!
https://gcdn.grapecity.com.cn/showtopic-160472-1-1.html
(出处: 葡萄城产品技术社区)
回复 使用道具 举报
MMCGN
中级会员   /  发表于:2023-8-29 11:13:54
4#
吴小胖 发表于 2023-8-29 09:31
大佬,您要学会看文档,里面都有详细的说明。借用一句厅长曾经说我的话:你能不能认真看文档!!!【小胖课 ...

阿里和腾讯云市场的对接方式差异非常大,腾讯云的涉及到复杂的签名算法,阿里的我早就对接成功了,我现在需要了解活字格用套腾讯云公开的JavaScript代码来对接的方法,而不是http请求工具
回复 使用道具 举报
MMCGN
中级会员   /  发表于:2023-8-29 11:18:36
5#
本帖最后由 MMCGN 于 2023-8-29 11:39 编辑
David.Zhong 发表于 2023-8-29 09:10
大佬可以参考一下。

发送http请求命令入门 - 葡萄城学院 - 葡萄城产品技术社区 (grapecity.com.cn)

你发的这些是基础的文档,我现在需要了解活字格用套腾讯云公开的JavaScript代码来对接的方法,而不是http请求工具,活字格官方JavaScript教程不详细,我也没办法用活字格对接涉及到签名算法的API,就是把这些代码直接复制过来,改几个参数,用活字格取JavaScript的值,这样应该可以避免直接去弄这些复杂的签名
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部