• 0
Mariano C

No logro obtener Access Token

Question

Buenas, estoy trabajando por primera vez con la API Node de ML, utilizando el enfoque server side llegue hasta el punto en donde a API me devuelve el authorization code para poder solicitar el Access Token. 

El gran problema lo tengo al querer utilizar ese y otros codigos en el llamado POST a: 

https://api.mercadolibre.com/oauth/token?grant_type=authorization_code&client_id=APP_ID&client_secret=SECRET_KEY&code=SERVER_GENERATED_AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI

pero no logro que este llamado me devuelva el token. Probe por medio de curl y postman pero siempre me sale un mensaje de time out:

rl: (7) Failed to connect to api.mercadolibre.com port 443: Timed out

 

En el callback de la funcion 

meliObject.authorize(code, redirect_uri, callback);

tambien me sale un mensaje del tipo "socket hang up"

Si alguien tiene alguna idea de que puede estar pasando bienvenido sea. me pregunto si un parametro con valor incorrecto puede estar haciendo que la API de ML no responda. En fin, ideas bienvenidas.

 

Gracias.

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Saludos @Mariano C

Vamos por partes, asegúrate primero que estás generando el código con la URL donde redireccionarás al usuario luego de ingresar y permitir la aplicación. Recuerda que es el URL de tu servidor el cual configuraste en la aplicación.

Quote

https://auth.mercadolibre.com/authorization?redirect_uri=REDIRECT_URI&response_type=code&client_id=APP_ID

Luego de esto, comentas que todo bien. Debes estar ahora en tu URL de redirección y con un parámetro añadido llamado code. Ese es el code que servirá para enviar un POST e intercambiarlo por un access_token. Entonces, revisa bien la URL donde harás la petición.

Quote

https://api.mercadolibre.com/oauth/token?grant_type=authorization_code&client_id=APP_ID&client_secret=SECRET_KEY&code=SERVER_GENERATED_AUTHORIZATION_CODE&redirect_uri=REDIRECT_URI


APP_ID: El id de la aplicación.
SECRET_KEY: La llave secreta de la aplicación
SERVER_GENERATED_AUTHORIZATION_CODE: El código de autorización generado, parámetro obtenido después de autenticar y permitir la aplicación.
REDIRECT_URI: Es la URL de redirección, si pudiste generar el código anterior quiere decir que tienes configurado la URL correctamente. Sólo debes pasar a este parámetro exactamente igual como cuando generaste al code.

Listo, debe funcionar correctamente.

Yo uso la librería de NodeJS y la modifiqué para usar promesas en lugar de callbacks. Así que si sigues sin poder intentarlo luego de revisar todo esto con detalles trata de colocar mas detalles para revisar por qué sigues con el problema. 

 

Share this post


Link to post
Share on other sites
  • 0

Hi

1 hour ago, Joao De Sousa said:

Saludos @Mariano C

Vamos por partes, asegúrate primero que estás generando el código con la URL donde redireccionarás al usuario luego de ingresar y permitir la aplicación. Recuerda que es el URL de tu servidor el cual configuraste en la aplicación.

Luego de esto, comentas que todo bien. Debes estar ahora en tu URL de redirección y con un parámetro añadido llamado code. Ese es el code que servirá para enviar un POST e intercambiarlo por un access_token. Entonces, revisa bien la URL donde harás la petición.


APP_ID: El id de la aplicación.
SECRET_KEY: La llave secreta de la aplicación
SERVER_GENERATED_AUTHORIZATION_CODE: El código de autorización generado, parámetro obtenido después de autenticar y permitir la aplicación.
REDIRECT_URI: Es la URL de redirección, si pudiste generar el código anterior quiere decir que tienes configurado la URL correctamente. Sólo debes pasar a este parámetro exactamente igual como cuando generaste al code.

Listo, debe funcionar correctamente.

Yo uso la librería de NodeJS y la modifiqué para usar promesas en lugar de callbacks. Así que si sigues sin poder intentarlo luego de revisar todo esto con detalles trata de colocar mas detalles para revisar por qué sigues con el problema. 

 

Hola Joao, muchas gracias por tu respuesta, justamente ayer por la noche despues de creo dos semanas atorado con este tema, pude ver que parece ser un tema de conectividad. Una prueba de ello es que ni siquiera puedo conectarme a la api de mercadolibre (https://api.mercadolibre.com) para obtener un recurso "publico", por ejemplo https://api.mercadolibre.com/sites/MLA/search?category=MLA34289 En estos casos siempre obtengo un timeout error.

Estoy conectado desde ecuador, en principio puede que sea mi proveedor de internet que esta bloqueando las llamadas a la API, pero revisando este reporte en la seccion HTTP tambien veo que recibe un connection close, igualmente estoy revisando mas en detalle el reporte: https://www.ssllabs.com/ssltest/analyze.html?d=api.mercadolibre.com&hideResults=on

Voy a ver si obtengo alguna data adicional, vale destacar por ejemplo, que con la api de mercadopago (https://api.mercadopago.com/v1/payments/search) SI recibo una respuesta del servidor, por lo que hay una especie de bloqueo solo para la api de mercadolibre pareceria.

Repasando, este no es un problema del token ni similar, es ya un tema de disponibilidad de la api de mercadolibre desde ecuador.

Cualquier ayuda bienvenida.

Saludos,

Mariano.

Share this post


Link to post
Share on other sites
  • 0

Hola Joao, segun la captura que adjunto, parece que mi ISP esta bloqueando las llamadas a la API, no se si alguien puede conectarse a la api desde Ecuador.

Creo que esto es insalvable por mi lado, es un tema de bloqueo del ISP.

traceroute.png

Share this post


Link to post
Share on other sites
  • 0

Hola Joao, bueno todo resuelto utilizando un cliente de VPN que me permite conectarme desde argentina.

El problema con el ISP supongo que sigue pero ya no me afecta mientras tenga este cliente de VPN.

Mil gracias por el soporte

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now