我不斷收到此錯誤“例外:https ://ftx.com 的請求失敗回傳代碼 401。截斷的服務器回應:{“成功”:假,“錯誤”:“未登錄”}(使用 muteHttpExceptions 選項檢查完整回復)”
我的代碼有什么問題?
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 '';
var shaObj = new jsSHA("SHA-256", "BYTES");
shaObj.setHMACKey(api_secret, "BYTES");
shaObj.update(payload);
var signature = shaObj.getHMAC("HEX");
var options = {
method: 'get',
headers: {
'FTX-KEY': api_key,
'FTX-TS': timestamp,
'FTX-SIGN': signature
},
muteHTTPExceptions: 'true'
}
var jsondata = UrlFetchApp.fetch(url, options);
var data = JSON.parse(jsondata.getContentText());
uj5u.com熱心網友回復:
我相信你的目標如下。
您想使用 Google Apps Script請求獲取FTX API的所有帳戶的余額。
用于檢索請求頭的示例 python 腳本如下。
import time import hmac from requests import Request ts = int(time.time() * 1000) request = Request('GET', '<api_endpoint>') prepared = request.prepare() signature_payload = f'{ts}{prepared.method}{prepared.path_url}'.encode() signature = hmac.new('YOUR_API_SECRET'.encode(), signature_payload, 'sha256').hexdigest() request.headers['FTX-KEY'] = 'YOUR_API_KEY' request.headers['FTX-SIGN'] = signature request.headers['FTX-TS'] = str(ts)
在這種情況下,當你的腳本被修改時,下面的修改如何?
修改后的腳本:
可惜new jsSHA()不能直接使用。在 Google Apps Script 中有 Class Utilities。您可以使用此類的方法“computeHmacSha256Signature”。而且,我認為muteHTTPExceptions: 'true'是muteHttpExceptions: true。
function myFunction() {
var api_key = "YOUR_API_KEY"; // Please set your API key.
var secret = "YOUR_API_SECRET"; // Please set your secret value.
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 '';
var signature = Utilities.computeHmacSha256Signature(payload, secret).map(byte => ('0' (byte & 0xFF).toString(16)).slice(-2)).join('');
var options = {
method: 'get',
headers: {
'FTX-KEY': api_key,
'FTX-TS': timestamp,
'FTX-SIGN': signature
},
muteHttpExceptions: true
}
var res = UrlFetchApp.fetch(url, options);
console.log(res.getContentText())
}
參考:
- computeHmacSha256Signature(value, key)
- 獲取所有賬戶的余額
- 獲取(網址,引數)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/339407.html
