Avalados por :

Cómo solucionar el error de código 32 al realizar solicitudes a la API de Twitter desde HANA con HANA XSJS.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 89 Vistas
0
Cargando...

Hola mundo,

Desde el inicio del año he tenido dificultades para cargar datos de Twitter dentro de HANA con los métodos de desarrollo HANA XSJS. Desde la versión SP07, existen trabajos por lotes programados con desarrollo xsjs, por lo que debería ser realmente fácil cargar algunos datos dentro de HANA.

Hasta aquí todo bien...

Para empezar, elegí la API de Twitter, que al igual que la mayoría de las API, requiere oauth. Pude construir mi propio token de oauth y probar una solicitud de API de Twitter con este token de oauth desde mi máquina local. Funcionó y ese no es el problema. La solicitud fue muy simple, un GET http con un campo de encabezado "Autorización": "mi token de oAuth"

Pero cuando hago esto en HANA, Twitter me da un mensaje de error de código 32 de solicitud incorrecta.

Ya he realizado solicitudes a otras APIs como datos meteorológicos o financieros, por lo que la comunicación http funciona.

Intenté encontrar mi solicitud en el registro del despachador web para ver cómo se ve exactamente mi solicitud http a Twitter. ¡Aumentando el nivel de registro al máximo, pero no veo la solicitud saliente!

¿Alguien tiene alguna idea de dónde encontrar mi solicitud http? Aquí está mi llamada, ya lo he depurado:


var dest = $.net.http.readDestination("mypackagepath", "twitter");


var client = new $.net.http.Client();
//var req = new $.web.WebRequest($.net.http.GET, "?q=" + query);


var req = new $.net.http.Request($.net.http.GET, "/1.1/search/tweets.json?q=mytags" );


var oauth_header = get_oauth_header(query);


//req.parameters.set("Authorization",oauth_header );
req.headers.set("Content-Type", "application/x-www-form-urlencoded");


req.headers.set("host", "api.twitter.com");




req.headers.set("Authorization", oauth_header);




//client.request(req, "http://api.twitter.com","myproxy:myport" );


//$.trace.debug(oauth_header);


client.request(req, dest);
var response = client.getResponse();

Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Resuelto,

Usa el DNS de Twitter en lugar de la IP como host de destino. Después de la Nota SAP, esto funcionó para mí.

No sé por qué, pero anteriormente el DNS no funcionaba y recibía un error como "no se puede resolver el DNS", que desapareció después de usar la IP. Pero ahora ha desaparecido y todo funcionó correctamente.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Se produjo el mismo error nuevamente.

El nombre de host en la parte "CN=" de      myhost 31007   xsengine         33783   XsIpConnection  Error     IPConnection.cpp(158)

El certificado del servidor no coincide con el nombre de host que se pasó a través de SapSSLSetTargetHostname()

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Hola!

Gracias por compartir tus valiosas experiencias aquí.

Pude usar PHP para buscar la API de Twitter y publicar en tablas de HANA, ahora

Estoy intentando un ejercicio similar en la plataforma HANA Cloud. Aunque la opción de llamar al destino PHP creado anteriormente desde HANA XS siempre está ahí para imitar la acción, me gustaría probar el destino de Twitter.

Solo me pregunto, si necesito establecer certificados de confianza SSL en la plataforma de nube de HANA... antes de comenzar a escribir un script XS saliente para...

Con la clave del consumidor, el secreto, el token de acceso y el token secreto - de la cuenta de Twitter, Primera llamada a la api oauth/request_token con la clave del consumidor para devolver los tokens de oauth para la siguiente cadena que se utilizará como encabezado de solicitud HTTP para la Autorización al llamar a la api de búsqueda,

OAuth oauth_consumer_key="XX",oauth_nonce="XX",oauth_signature = "XX",oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "XX", oauth_token = "XX", oauth_version = "1.0".

De todos modos, intentaré y compartiré los hallazgos.

Gracias,

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?