Server side

En esta guía te explicaremos cómo realizar el flujo de autenticación/autorización Server Side, el más adecuado para las aplicaciones que ejecutan código del lado del servidor, por ejemplo aplicaciones desarrolladas en lenguaje como Java, Grails, Go, etc. El equipo de Open Platform te recomienda que utilices nuestros SDKs ya que tienen funcionalidades que facilitarán la complejidad del flujo de autorización utilizando el protocolo OAuth.

Contenidos:

Paso a paso

Los pasos a seguir para realizar la autorización oAuth Server Side son:
  • Para comenzar necesitarás el app ID y el secret key que obtuviste al crear tu aplicación. Si aún no lo hiciste esta guía te proporcionará los pasos necesarios para hacerlo.

  • Al iniciar el flujo de autorización la aplicación que desarrolles deberá redireccionar a Mercado Libre para que los usuarios puedan autenticarse y posteriormente autorizar tu aplicación. Simplemente debes efectuar un redireccionamiento al URL:

https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=App_id
Nota: En este ejemplo, utilizamos el URL para Argentina (MLA) si estás trabajando en otros países ten en cuenta cambiar el .com.ar por el dominio del país correspondiente. Para ver los países en donde opera Mercado Libre puedes consultar en la siguiente URL http://www.mercadolibre.com/

Parámetros

response_type: code – Indica que la operación deseada es obtener un código de autenticación que le permitirá a tu servidor interactuar con Mercado Libre. client_id: Es el App ID de la aplicación que creaste. redirect_uri: URL – Es el URL de tu servidor el cual configuraste en la aplicación. Nota: Recuerda que si estás trabajando en local host podrás utilizar http y si estás trabajando en un dominio público deberás utilizar https y un puerto menor a 5 dígitos. No tienes que preocuparte por la autenticación de los usuarios a Mercado Libre, ¡nuestra plataforma se encargará de ello!
  • Una vez que el usuario complete el proceso de autenticación será redireccionado a la página de autorización de tu aplicación. Allí se le presentarán todos los permisos solicitados junto a la descripción de tu aplicación.
  • captura-de-pantalla-2016-09-29-a-las-3-25-09-p-m
  • Otorgados los permisos el usuario será redireccionado al Redirect URI (configurado en tu aplicacion de Mercado Libre) y parámetro utilizado en el URL de autenticación con código de autorización de la forma:
http://YOUR_REDIRECT_URI?code=SERVER_GENERATED_AUTHORIZATION_CODE

  • El código de autorización es utilizado para intercambiarlo por un access_token (una llave de acceso a los recursos privados que dura 6 horas). Para obtener el token debes realizar el siguiente POST
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
Respuesta:
{
	"access_token" : "APP_USR-6092-3246532-cb45c82853f6e620bb0deda096b128d3-8035443",
	"token_type" : "bearer",
	"expires_in" : 10800,
	"scope" : "write read"
}

Parámetros

grant_type: authorization_code – Indica que la operación deseada es intercambiar el “code” por un access_token. client_id: El APP ID de la aplicación creada. client_secret: hash – El Secret Key generado para tu aplicación cuando fue creada. code: El código de autorización obtenido en el paso anterior. redirect_uri: URL – El redirect URI configurado para tu aplicación o uno de los dominios permitidos.
  • ¡Listo! Como verás en la respuesta obtendrás el access_token para realizar llamadas a nuestra API y así obtener acceso a los datos privados del usuario. Por ejemplo para acceder a la información privada del usuario:
$ curl https://api.mercadolibre.com/users/me?access_token=$ACCESS_TOKEN
Respuesta:
{
    "id": 178553776,
    "user_id": 206946886,
    "contact": null,
    "phone": null,
    "address_line": "Triunvirato 5555",
    "floor": null,
    "apartment": null,
    "street_number": "5555",
    "street_name": "Triunvirato",
    "zip_code": "1414",
    "city": {
      "id": "TUxBQlZJTDcwOTla",
      "name": "Villa Urquiza"
    },
    "state": {
      "id": "AR-C",
      "name": "Capital Federal"
    },
    "country": {
      "id": "AR",
      "name": "Argentina"
    },
    "neighborhood": {
      "id": null,
      "name": null
    },
    "municipality": {
      "id": null,
      "name": null
    },
    "search_location": {
      "state": {
        "id": "TUxBUENBUGw3M2E1",
        "name": "Capital Federal"
      },
      "city": {
        "id": null,
        "name": null
      },
      "neighborhood": {
        "id": null,
        "name": null
      }
    },
    "types": [
    ],
    "comment": "",
    "geolocation_type": "ROOFTOP",
    "latitude": -34.5676878,
    "longitude": -58.4933182,
    "status": "active",
    "date_created": "2016-02-24T16:29:59.000-04:00",
    "normalized": true,
    "open_hours": {
      "on_holidays": {
        "hours": [
        ],
        "status": "closed"
      }
    }
  }

  • Nada es para siempre y tampoco lo es nuestro access_token. El mismo expirará transcurridas 6 horas desde que se solicitó.

¿Qué pasa si necesito trabajar por más de 6 horas con un access_token? Si en nuestra aplicación está seleccionada la opción offline_access junto con el access_token como el que vimos anteriormente recibiremos un refresh_token, el cual deberemos guardar para posteriormente intercambiarlo por un nuevo access_token una vez que éste expire. Para renovar tu access_token debes efectuar la siguiente llamada POST.
https://api.mercadolibre.com/oauth/token?grant_type=refresh_token&client_id=APP_ID&client_secret=SECRET_KEY&refresh_token=REFRESH_TOKEN

Parámetros

grant_type: refresh_token – Indica que la operación deseada es actualizar un token. refresh_token: El refresh token del paso de aprobación. client_id: El ID de cliente de tu aplicación. client_secret: El Secret Key generado para tu aplicación cuando fue creada. Respuesta:
{

    "access_token": "APP_USR-5387223166827464-090515-b0ad156bce700509ef81b273466faa15-8035443”,

    "token_type": "bearer",

    "expires_in": 10800,

    "scope": "offline_access read write",

    "user_id":8035443,

    "refresh_token": "TG-5b9032b4e4b0714aed1f959f-8035443"

}
La respuesta incluye un nuevo access_token validado por 6 horas más y un nuevo refresh_token que necesitarás guardar para utilizarlo cada vez que expire.

Flujo Server Side

En resumen, el proceso que estarás realizando es el siguiente: flujo_serverside
Referencias:
1) Redirecciona la APP a Mercado Libre.
2) No tienes que preocuparte por la autenticación de los usuarios a Mercado Libre, ¡nuestra plataforma se encargará de ello!.
3) Página de autorización.
4) Llamada a la API de Mercado Libre POST para intercambiar el código de autorización por un access token.
5) La API de Mercado Libre intercambia el código de autorización por un access token.
6) Ya puedes utilizar el access_token para realizar llamadas a nuestra API y así obtener acceso a los datos privados del usuario.
a- Redirect
https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=APP_ID&redirect_uri=REDIRECT_URL

b-
GET
http://YOUR_REDIRECT_URI?code=SERVER_GENERATED_AUTHORIZATION_CODE
c-
POST
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
d- Respuesta a llamada anterior:
{

    "access_token": "APP_USR-5387223166827464-090515-8cc4448aac10d5105474e135355a8321-8035443",

    "token_type": "bearer",

    "expires_in": 10800,

    "scope": "offline_access read write",

    "user_id":8035443,

    "refresh_token": "TG-5b9032b4e4b0714aed1f959f-8035443"

}

Preguntas frecuentes

Sumate a nuestra comunidad para poder hacer tus consultas.

Forma parte de nuestra comunidad