javascript - Google Apps 脚本:对 Luno API 的 API 身份验证
问题描述
这里的总菜鸟程序员(最初是一名老派机械工程师)。
在网上学习了一些 Javascript 课程后,我想我可以尝试在 Google Sheet 上构建一个简单的脚本。我的项目计划是有一个脚本来通过他们的API自动跟踪我在Luno.com (cryptoexchange) 上的所有交易。他们的API 文档在这里。
我试图使用List Transactions来填充我的电子表格上的所有历史交易,但我卡在了身份验证 UrlFetchApp.fetch(url) 端点访问请求中
编辑:您应该重新考虑公开分享您的身份验证信息。我删除了它。
下面是我的 Code.gs 脚本:
function importStatementLuno() {
var ss = SpreadsheetApp.getActiveSpreadsheet(); //get active spreadsheet (bound to this script)
var url = 'https://api.luno.com/api/1/accounts/xxx/transactions'; //api endpoint as a string
var response = UrlFetchApp.fetch(url,{'muteHttpExceptions': false}); // get api endpoint
var json = response.getContentText(); // get the response content as text
var lunodata = JSON.parse(json); //parse text into json
Logger.log(lunodata);
我的 fetch 响应给了我这个错误:
异常:对https://api.luno.com的请求失败,返回代码 401。截断的服务器响应:未经授权(使用 muteHttpExceptions 选项检查完整响应)
我一辈子都无法理解他们的文档!我不确定是否实际上有不同的表达式用于向他们的服务器提供身份验证密钥(他们在他们的入门文档中明确提到他们更好地支持 Go )我希望这里有人可以帮助我指出我哪里出错了。
解决方案
基于Luno-Go 文档,它使用SetBasicAuth
并根据Go 文档,SetBasicAuth
只是 HTTP 基本身份验证。如果它解决了您的问题,您可以尝试下面的代码吗?
代码:
var apiKeyID = 'apiKeyID';
var apiKeySecret = 'apiKeySecret';
var headers = {
"Authorization": "Basic " + Utilities.base64Encode(apiKeyID + ":" + apiKeySecret)
};
var options = {
"headers" : headers
};
var response = UrlFetchApp.fetch(url, options); // get api endpoint
新错误:
- 错误现在有所不同,因为我使用了无效的凭据。试着在这里输入你的。
推荐阅读
- varnish - 具有不同 ESI 的 CDN 和清漆:标签名称
- python - .exe 文件在几秒钟内崩溃
- python - 使用随机值创建 numpy 数组时出现 Pylint 错误 E1136
- angular - 将单元测试用例写入 promise 函数时没有发生代码覆盖
- vba - 如何在运行时错误发生之前发现它们?
- r - 缩短列名,在全名悬停时提供工具提示
- ios - ifl 参数在我的 firebase 动态链接中不起作用
- python - 编码监视器python
- javascript - 当我什至没有具有该名称的类时,此变量与什么相关联
- reactjs - 使用 react-router-dom 实现登录和注册路由