es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error HTTP 401 de la API de Binance (Ionic/Angular)

privateCall(apiSecret, apiKey, path, data = null, get = true) {
const timestamp = Date.now();
const recvWindow = 60000; //máximo permitido, default 5000

var obj = {
  apiSecret,
  ...data,
  timestamp, 
  recvWindow
};


var hash = CryptoJS.SHA256(obj);
var signature = hash.toString();

const newData = {...data, recvWindow, timestamp, signature };
let qs = `?${this.objectToQueryString(newData)}`;

const headers = new HttpHeaders();
headers.set("X-MBX-APIKEY", apiKey);

if (get) {      
  return this.http.get<any>(`${this.binanceUrl}${path}${qs}`, { headers: headers } );
} else {
  return this.http.post(`${this.binanceUrl}${path}${qs}`, data, { headers: headers });
}

}

private objectToQueryString(obj) {
var str = [];
for(var p in obj) {
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + “=” + encodeURIComponent(obj[p]));
}
}
return str.join(“&”);
}

Error: code=-2014; Formato de API-Key inválido

La URL a la que estoy intentando acceder es ‘/v3/account’.

Ya he probado con mi ApiKey y SecretKey. Generé nuevas claves en la API de prueba de Binance y aún así no funcionó. ¿Podría ser la forma en que estoy pasando el ‘header’?

EDIT 1:

Cadena de URL qs = “?recvWindow=60000&timestamp=1640963456770&signature=4ea5c508a6566e76240543f8feb06fd457777be39549c4016436afda65d2330e”

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Explicación del código y mensaje de error

    El código anterior es una función privada que se utiliza para realizar llamadas a la API de Binance, una plataforma de intercambio de criptomonedas. La función toma cuatro parámetros:

    1. apiSecret: La clave secreta para la API.
    2. apiKey: La clave pública para la API.
    3. path: El endpoint de la API al que se accede.
    4. data: Datos opcionales que se envían al endpoint.

    La función genera valores de timestamp y recvWindow, así como una signature para la llamada a la API. Esta firma se utiliza como mecanismo de autenticación para asegurar que solo los usuarios autorizados puedan acceder a la API. Las cabeceras de la solicitud se configuran con el parámetro de cabecera X-MBX-APIKEY, que incluye la apiKey.

    El problema que se encuentra está relacionado con el parámetro apiKey. El mensaje de error indica que el formato de la API-Key es inválido. Esto puede deberse a un problema de formato o valor con la apiKey.

    Posibles soluciones

    1. Verificar si la apiKey y apiSecret son correctas y coinciden con las generadas en el portal de gestión de la API de Binance.
    2. Asegurarse de que la apiKey tenga el formato correcto y no contenga caracteres ni espacios adicionales. Debe ser una cadena de letras y números.
    3. Verificar si la variable headers se está configurando y pasando correctamente a la función que llama a la función privada.
    4. Comprobar si el endpoint al que se accede requiere autorización consultando la documentación de la API de Binance.
    5. Si todo lo demás falla, comunicarse con el equipo de soporte de Binance para obtener más ayuda.

Comments are closed.