J'essaie de créer un script javascript/jQuery qui utilise l'API KuCoin. J'essaie spécifiquement d'utiliser l'API KuCoin à partir de la console du navigateur, pas à partir de Node JS ou d'un fichier local.
J'ai un certain succès avec l'API Kucoin et je peux faire des requêtes REST GET signées mais je n'arrive pas à faire fonctionner mes requêtes REST POST. Voici mon code:
// VARIABLES
var burl = 'https://cors-anywhere.herokuapp.com/https://api.kucoin.com'
var api_key = "xxx"
var api_secret = "xxx"
var api_passphrase = "xxx"
var endPointAccount = '/api/v1/accounts';
var endPointOrder = '/api/v1/orders';
// REST (Account)
// This signed GET request works
var now = Date.now();
var hey = now + "GET" + endPointAccount
/* signature */
var signature = CryptoJS.HmacSHA256(hey, api_secret);
var signatureInBase64 = CryptoJS.enc.Base64.stringify(signature);
/* passphrase */
var passphrase = CryptoJS.HmacSHA256(api_passphrase, api_secret);
var passphraseInBase64 = CryptoJS.enc.Base64.stringify(passphrase);
var headers = {
"KC-API-SIGN": signatureInBase64,
"KC-API-TIMESTAMP": now,
"KC-API-KEY": api_key,
"KC-API-PASSPHRASE": passphraseInBase64,
"KC-API-KEY-VERSION": "2"
}
var url = burl + endPointAccount;
$.ajax({
type: 'GET',
url: url,
headers: headers,
dataType: 'json',
success: function (data) {
console.log(data);
}
});
// REST (Order Limit BUY)
var now = Date.now().toString();
var hey = now + 'POST/api/v1/orders{"clientOid":"ADAUSDT","side":"buy","symbol":"ADA-USDT","price":"0.001","size":"50000"}';
/* signature */
var signature = CryptoJS.HmacSHA256(hey, api_secret);
signatureInBase64 = CryptoJS.enc.Base64.stringify(signature);
/* passphrase */
var passphrase = CryptoJS.HmacSHA256(api_passphrase, api_secret);
passphraseInBase64 = CryptoJS.enc.Base64.stringify(passphrase);
var headers = {
"KC-API-SIGN": signatureInBase64,
"KC-API-TIMESTAMP": now,
"KC-API-KEY": api_key,
"KC-API-PASSPHRASE": passphraseInBase64,
"KC-API-KEY-VERSION": "2"
}
var url = burl + 'POST/api/v1/orders{"clientOid":"ADAUSDT","side":"buy","symbol":"ADA-USDT","price":"0.001","size":"50000"}';
$.ajax({
headers: headers,
type: "POST",
url: url,
dataType: "json",
success: function (data) {
console.log(data);
}
});
Je reçois toujours l'erreur suivante avec ma requête POST: code: '400005', msg: 'Invalid KC-API-SIGN'
Est-ce que quelqu'un sait ce que je fais mal?
Merci, Steve
Solution du problème
J'ai eu le même problème. Tout d'abord, dans la chaîne que vous souhaitez signer, vous devez inclure la méthode. Ensuite, vous devez définir un corps. S'il n'y a pas de corps, vous devez passer body="". Ensuite, vous devez analyser Date.now() en chaîne. Par example:
var now = Date.now().toString();
var hey = now + method + url + body;
Après avoir écrit ceci, j'ai vu que vous aviez déjà inclus la méthode dans l'URL, donc c'est bien aussi.
Remarque : je n'ai pas utilisé CryptoJS. J'ai utilisé le module crypto de node.js.
Aucun commentaire:
Enregistrer un commentaire