Server side

Neste guia, vamos explicar como realizar o fluxo de autenticação/autorização Server Side, o mais adequado para aplicativos que executam código do lado do servidor, por exemplo, aplicativos desenvolvidos em linguagem Java, Grails, Go, etc. O time da Open Platform recomenda que você utilize os nossos SDKs, pois eles têm funcionalidades que irão facilitar a complexidade do fluxo de autorização, utilizando o protocolo OAuth.

Conteúdos:

Passo a passo

Os passos a seguir para realizar a autorização OAuth Server Side são:
  • Para começar, você vai precisar do app ID e do secret key obtidos durante a criação do seu aplicativo. Caso você ainda não tenha feito, este guia vai lhe fornecer os passos necessários para fazê-lo.

  • Ao iniciar o fluxo de autorização, o aplicativo que você desenvolver deverá encaminhar para o Mercado Livre para que os usuários possam realizar a autenticação e depois autorizar seu aplicativo. Você simplesmente deve encaminhar para a URL:

https://auth.mercadolibre.com.ar/authorization?response_type=code&client_id=App_id
Nota: Neste exemplo, utilizamos a URL para a Argentina (MLA); se estiver trabalhando em outros países, você deve alterar .com.ar pelo domínio do respectivo país. Para ver os países onde o Mercado Livre opera, clique na URL http://www.mercadolibre.com/

Parâmetros

response_type: code – Indica que a operação desejada é obter um código de autenticação que permitirá que seu servidor interaja com o Mercado Livre. client_id: É o App ID do aplicativo que você criou. redirect_uri: URL – É a URL do seu servidor configurado no aplicativo. Nota: Lembre que se você estiver trabalhando em local host poderá utilizar http e se estiver trabalhando em um domínio público deverá utilizar https e uma porta de menos de 5 dígitos. Você não tem que se preocupar com a autenticação dos usuários no Mercado Livre, nossa plataforma fará tudo!
  • Quando o usuário completar o processo de autenticação, será encaminhado para a página de autorização do seu aplicativo. Nele serão apresentadas todas as permissões solicitadas e a descrição do seu aplicativo.
  • captura-de-pantalla-2016-09-29-a-las-3-25-09-p-m
  • Concedidas as permissões, o usuário será encaminhado para o Redirect URI (configurado no seu aplicativo do Mercado Livre) e parâmetro utilizado na URL de autenticação com código de autorização da seguinte forma:
http://YOUR_REDIRECT_URI?code=SERVER_GENERATED_AUTHORIZATION_CODE

  • O código de autorização é utilizado para ser trocado por um access_token (senha de acesso aos recursos privados com duração de 6 horas). Para obter o token você deve realizar o seguinte 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
Resposta:
{
	"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 a operação desejada é trocar o “code” por um access_token. client_id: APP ID do aplicativo criado. client_secret: hash – O Secret Key gerado para seu aplicativo quando foi criado. code: Código de autorização obtido no passo anterior. redirect_uri: URL – O redirect URI configurado para seu aplicativo ou um dos domínios permitidos.
  • Pronto! Como pode ver, na resposta você vai obter o access_token para realizar chamadas para a nossa API e ter acesso aos dados privados do usuário. Por exemplo, para acessar as informações privadas do usuário:
$ curl https://api.mercadolibre.com/users/me?access_token=$ACCESS_TOKEN
Resposta:
{
    "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 é para sempre e o nosso access_token também não é. Ele vai expirar após 6 horas de ter sido solicitado.

O que acontece se eu preciso trabalhar durante mais de 6 horas com um access_token? Se no nosso aplicativo estiver selecionada a opção offline_access e o access_token como o que vimos antes, vamos receber um refresh_token, o qual devemos salvar para depois trocá-lo por um novo access_token quando este expirar. Para renovar seu access_token, você deve efetuar a seguinte chamada 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 a operação desejada é atualizar um token. refresh_token: Refresh token do passo de aprovação. client_id: ID de cliente do seu aplicativo. client_secret: Secret Key gerado para seu aplicativo quando foi criado. Resposta:
{

    "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"

}
A resposta inclui um novo access_token original validado por mais 6 horas e um refresh_token que precisará ter para utiliza-lo quando expire.

Fluxo Server-Side

Resumindo, o processo que você vai realizar é o seguinte: flujo_serverside_por
Referências:
1) Redirect seu aplicativo a Mercado Livre.
2) Você não tem que se preocupar com a autenticação dos usuários no Mercado Livre, nossa plataforma fará tudo!
3) Pagina de autenticação.
4) Chamada da API de Mercado Livre POST para intercambiar o código de autorização por um access_token.
5) A API de Mercado Livre intercambia o código de autorização por um access_token.
6) Já pode utilizar o access_token para realizar chamadas a nossa API e assim obter acesso aos dados privados do usuário.
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- Resposta à chamada 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"

}

Perguntas frequentes

Entre em contato com desenvolvedores da comunidade e compartilhe suas dúvidas e experiências.

Faça parte da nossa comunidade