¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como resolver o erro de código 32 ao fazer solicitações para a API do Twitter a partir do HANA com HANA XSJS.

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

Olá mundo,

Desde o início do ano tenho tido dificuldades em carregar dados do Twitter dentro do HANA com os métodos de desenvolvimento HANA XSJS. Desde a versão SP07, existem trabalhos em lote programados com desenvolvimento xsjs, então deveria ser realmente fácil carregar alguns dados dentro do HANA.

Até aqui tudo bem...

Para começar, escolhi a API do Twitter, que assim como a maioria das APIs, requer oauth. Consegui construir meu próprio token de oauth e testar uma solicitação de API do Twitter com este token de oauth a partir da minha máquina local. Funcionou e esse não é o problema. A solicitação foi bem simples, um GET http com um campo de cabeçalho "Autorização": "meu token de oAuth"

Mas quando faço isso no HANA, o Twitter me dá uma mensagem de erro de código 32 de solicitação inválida.

Já fiz solicitações a outras APIs como dados meteorológicos ou financeiros, então a comunicação http funciona.

Tentei encontrar minha solicitação no registro do despachante web para ver como exatamente minha solicitação http para o Twitter se parece. Aumentei o nível de registro ao máximo, mas não vejo a solicitação de saída!

Alguém tem alguma ideia de onde encontrar minha solicitação http? Aqui está minha chamada, já depurei:


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();


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

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Resolvido,

Use o DNS do Twitter em vez do IP como host de destino. Depois da Nota SAP, isso funcionou para mim.

Não sei por que, mas anteriormente o DNS não estava funcionando e eu recebia um erro como "não é possível resolver o DNS", que desapareceu depois de usar o IP. Mas agora desapareceu e tudo está funcionando corretamente.

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

O mesmo erro ocorreu novamente.

O nome do host na parte "CN=" de myhost 31007 xsengine 33783 XsIpConnection Erro IPConnection.cpp(158)

O certificado do servidor não corresponde ao nome do host passado através do SapSSLSetTargetHostname()

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

Olá!

Obrigado por compartilhar suas valiosas experiências aqui.

Consegui usar PHP para buscar a API do Twitter e publicar em tabelas do HANA, agora

Estou tentando um exercício semelhante na plataforma HANA Cloud. Embora a opção de chamar o destino PHP criado anteriormente a partir do HANA XS esteja sempre lá para imitar a ação, gostaria de testar o destino do Twitter.

Apenas me pergunto se preciso configurar certificados SSL confiáveis na plataforma de nuvem do HANA... antes de começar a escrever um script XS de saída para...

Com a chave do consumidor, o segredo, o token de acesso e o token secreto - da conta do Twitter, Primeira chamada à api oauth/request_token com a chave do consumidor para retornar os tokens de oauth para a próxima cadeia que será usada como cabeçalho da solicitação HTTP para a Autorização ao chamar a api de busca,

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 qualquer forma, tentarei e compartilharei as descobertas.

Obrigado,

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?