Passo 2 - Geração do Token de Acesso
Com o Client ID e o Client Secret em mãos, você poderá solicitar um Token de Acesso que será utilizado para autenticar as chamadas à API. O processo envolve os seguintes passos:
2.1 Realize o consentimento da sua aplicação (sandbox)
Esse passo é necessário apenas para ambientes de Sandbox
Para conceder permissões à sua aplicação em sua loja de testes (sandbox), você tem duas opções:
Utilizar a Interface: Na página Aplicações, clique no botão "sandbox" para iniciar o processo de autorização
Utilizar o Link Direto: Construa o link de autorização no ID Magalu com os seguintes parâmetros, substituindo
<CLIENT_ID>
,<REDIRECT_URI>
e<SCOPES>
pelos seus valores:https://id.magalu.com/login?client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>&scope=<SCOPES>&response_type=code&choose_tenants=true
Atenção: Ao utilizar o link direto, é crucial garantir que os escopos especificados na URL sejam idênticos aos escopos configurados na sua aplicação, para evitar erros de autorização e potenciais problemas de segurança.
Utilize a tabela para guiar:
Escopo aplicação | Escopo URL |
---|---|
ver pedidos | aqf:order:create |
editar pedidos | aqf:order:read |
ver cardápio | aqf:menu:create |
editar cardápio | aqf:menu:read |
ver loja | aqf:store:create |
editar loja | aqf:store:read |
Exemplo de uso, caso você tenha criado um aplicativo com os escopos ver loja
e editar loja
você deve atualizar na url o campo <SCOPES>
com : aqf:store:read aqf:store:create
separando cada escopo com um espaço.
Então ficaria uma URL dessa forma:
https://id.magalu.com/login?client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>&scope=aqf:store:read aqf:store:create&response_type=code&choose_tenants=true
Faça login ou cadastre-se no ID Magalu para poder prosseguir.
Após feito login, você será redirecionado para a tela de consentimento, onde precisa selecionar quais escopos você pretende utilizar na sua aplicação.
Sugerimos que marque todas as permissões para que no futuro, você não precise re-autenticar todos seus clientes caso venha a utilizar novos recursos no futuro.
2.2 Obtendo seu primeiro ACCESS TOKEN
Após a realização do consentimento, você será redirecionado para a sua URL informada na sua aplicação, com um parametro ?code=<CODE>
.
Exemplo, caso minha URL de redirecionamento cadastrada no aplicativo fosse https://developer.aiqfome.com
, após a realização do consentimento, eu seria redirecionado para:
https://developer.aiqfome.com?code=<CODE>
Agora, você possui um código, e pode trocar pelo seu primeiro ACCESS TOKEN.
Para obter seu primeiro token siga faça o seguinte, você vai juntar os dados que obteve no passo 1 que são CLIENT_ID
, CLIENT_SECRET
e o REDIRECT_URI
cadastrado na sua aplicação, e vai utilizar o CODE
que obteve na etapa anterior.
Agora com isso você pode fazer o seguinte request, para trocar o CODE
pelo seu Access Token.
2.3 Trocar CODE pelo Access Token
https://id.magalu.com/oauth/token
curl --request POST \
--url https://id.magalu.com/oauth/token \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data client_id=<CLIENT_ID> \
--data client_secret=<CLIENT_SECRET> \
--data redirect_uri=<REDIRECT_URI> \
--data code=<CODE> \
--data grant_type=authorization_code
e sua resposta deve ser algo como isso:
{
"access_token": "<ACCESS_TOKEN>",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "<REFRESH_TOKEN>",
"scope": "aqf:menu:create aqf:menu:read aqf:order:create aqf:order:read aqf:store:read aqf:store:create",
"created_at": 123456789
}
Observação importante: Seu CODE
só pode ser usado uma única vez e logo após seu uso ele é expirado.
Agora, armazene seu REFRESH_TOKEN de forma segura, pois você precisa realizar a atualização do seu token periodicamente.
Caso seu REFRESH TOKEN venha a expirar, será necessário realizar novamente a etapa de consentimento para obter o CODE
e troca-lo por um novo par de ACCESS_TOKEN e REFRESH_TOKEN.