You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets调用FTX API返回401 Not logged in错误排查

Google Sheets调用FTX API 401报错修复方案

已知代码问题点

  • 参数拼写错误:代码中muteHTTPExceptions拼写不符合Google Apps Script规范,正确写法为muteHttpExceptions(Http首字母小写),错误拼写会导致该参数失效,无法获取完整返回内容排查问题。
  • 签名编码不匹配:FTX要求签名计算时,消息和密钥均使用UTF-8编码,你当前使用的BYTES编码如果和实际字符集不匹配会导致签名校验失败。同时请确认api_key、api_secret两个变量已正确赋值,无多余空格、换行等无效字符。
  • 时间戳偏差超限:FTX要求FTX-TS头的毫秒时间戳和FTX服务器时间偏差不能超过5秒,本地时间偏差过大时会直接触发401报错。
  • 子账户请求缺失字段:如果查询的是子账户余额,需要在请求头额外添加FTX-SUBACCOUNT字段,值为URL编码后的子账户名称。
  • 请求方法大小写兼容问题:建议将options中的method值改为大写GET,避免适配问题。

修正后代码示例

// 请先确保此处已正确赋值api_key和api_secret
var api_key = '你的API_KEY';
var api_secret = '你的API_SECRET';
// 子账户如果需要就打开下面这行注释,填自己的子账户名
// var subaccount = encodeURIComponent('你的子账户名');

var host = 'https://ftx.com';
var endpoint ='/api/wallet/all_balances';
var url = host + endpoint;

var timestamp = '' + new Date().getTime();
var payload = timestamp + 'GET' + endpoint;

// 改用UTF-8编码计算签名
var shaObj = new jsSHA("SHA-256", "TEXT");
shaObj.setHMACKey(api_secret, "TEXT");
shaObj.update(payload);
var signature = shaObj.getHMAC("HEX");

var options = {
 method: 'GET',
 headers: {
  'FTX-KEY': api_key,
  'FTX-TS': timestamp,
  'FTX-SIGN': signature
  // 子账户用户打开下面这行注释
  // 'FTX-SUBACCOUNT': subaccount
  },
 muteHttpExceptions: true
}

var jsondata = UrlFetchApp.fetch(url, options);
// 可以先打日志看返回内容
console.log(jsondata.getContentText());
var data = JSON.parse(jsondata.getContentText());

内容的提问来源于stack exchange,提问作者Die Moba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:06:03