SQL Server – Llamar a la API de Binance con encabezado de clave de API
Quiero obtener la información de mi cuenta de Binance mediante la llamada a la API a través de SQL Server. Pero no puedo averiguar cómo enviar la clave de la API con el formato adecuado. ¿Es posible? ¿Cómo debo enviar la clave de la API con la solicitud GET?
Error: {“code”: -2014, “msg”: “Formato de clave API no válido.”}
Aquí está mi SQL a continuación;
DECLARE @Object AS INT;
DECLARE @ResponseT AS VARCHAR(max);
DECLARE @Response AS TABLE(Json_Table NVARCHAR(MAX))
DECLARE @Signature NVARCHAR(255) = ‘XXXXXXXXXXXXXXXXXXXXXX’
DECLARE @Timestamp_Value NVARCHAR(255) = ‘163818122343’
DECLARE @Url NVARCHAR(1000) = ‘https://api.binance.com/api/v3/account?’+ ‘timestamp=’+@Timestamp_Value+’&signature=’+@Signature
DECLARE @Api_Key varchar(max) = ‘[{
“Name”: “X-MBX-APIKEY”,
“Value”: “YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY”
}]’;
EXEC sp_OACreate ‘MSXML2.ServerXMLHTTP’, @Object OUT;
EXEC sp_OAMethod @Object, ‘open’, NULL, ‘get’,
@Url,
‘false’
EXEC sp_OAMethod @Object, ‘setRequestHeader’, NULL, ‘Content-Type’, ‘application/json’;
EXEC sp_OAMethod @Object, ‘send’, null, @Api_Key
EXEC sp_OAMethod @Object, ‘responseText’, @ResponseT OUTPUT
INSERT INTO @Response (Json_Table)
EXEC sp_OAGetProperty @Object, ‘responseText’;
SELECT * FROM @Response
EXEC sp_OADestroy @Object
davy.ai
Parece que estás intentando enviar la clave de API como parte del cuerpo de la solicitud. En su lugar, deberías enviarla como parte de la cabecera de la solicitud. Puedes hacerlo usando el método
setRequestHeader
del objetoMSXML2.ServerXMLHTTP
.Por ejemplo, puedes añadir la siguiente línea de código:
EXEC sp_OAMethod @Object, 'setRequestHeader', NULL, 'X-MBX-APIKEY', 'YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY';
Esto añadirá la clave de API a la cabecera de la solicitud, que debería estar en el formato correcto.