Аутентификация частного запроса API Kraken {"error": ["EAPI: Неверный ключ"]} - Google Script - PullRequest
1 голос
/ 30 апреля 2020

Я пытался связаться с частным API на Kraken. Полученная ошибка говорит о том, что {"error": ["EAPI: Неверный ключ"]} правильные шаги шифрования / дешифрования. Я пробовал создавать новые ключи, не помогает. Мне интересно, если «формат» переменной подписи является неправильным, хотя и является правильным по своей природе. Любая помощь будет принята с благодарностью!

function balance () {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("API_read_only");
var key = sheet.getRange("B5").getValue()
var secret = sheet.getRange("B6").getValue()

// (метод API, nonce и данные POST)

var path = "/0/private/TradeBalance"
var nonce = new Date () * 1000
var postdata = "nonce=" + nonce 

// Алгоритмы

// Рассчитать SHA256 одноразового номера и данных POST // с использованием скрипта goolge lib // с использованием функции succint из возвращает строковое представление из байта computeDigest (алгоритм, значение) []

function SHA_256 (str) {
return Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, str).reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');
}
var api_sha256 = SHA_256(nonce + postdata)

// Декодировать секрет API (частную часть ключа API) из base64 // нужно stringyfy

var base64 = Utilities.base64Decode(secret)
var base64s = Utilities.newBlob(base64).getDataAsString()

// Вычислить HMA C пути URI и SHA256, используя SHA512 в качестве HMA C ha sh и в качестве декодированного секрета API в виде ключа HMA C

var hamc512_uri = Utilities.computeHmacSha256Signature(path + api_sha256,base64s)
var hamc512_uris = Utilities.newBlob(hamc512_uri).getDataAsString()

// Кодирование HMA C в base64

var signature = Utilities.base64Encode(hamc512_uris)

Logger.log(signature)

//An example of the algorithm using the variables shown above is as follows:

//Base64Encode(HMAC-SHA512 of ("/0/private/TradeBalance" + SHA256("1540973848000nonce=1540973848000&asset=xxbt")) using Base64Decode("FRs+gtq09rR7OFtKj9BGhyOGS3u5vtY/EdiIBO9kD8NFtRX7w7LeJDSrX6cq1D8zmQmGkWFjksuhBvKOAWJohQ==") as the HMAC key

// Результатом является значение / подпись API-знака.

// connect

var url = "https://api.kraken.com" + path;
var options = {
method: 'post',
headers: {
    'API-Key': key,
    'API-Sign': signature
},
payload: postdata
};

var response = UrlFetchApp.fetch (url, options);
json = response.getContentText ();

Logger.log(json)

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...