Como renovar o access_token
access_token
O access_token
do RD Station CRM tem validade de 2 horas. Quando ele expirar, sua aplicação deverá usar o refresh_token
para obter um novo access_token
de forma programática, sem que o usuário precise passar pelo fluxo de autorização novamente.
O refresh_token
expirará caso não seja utilizado por um período de 14 dias. Contanto que sua aplicação o utilize para renovar o access_token
dentro desse intervalo, a conexão se manterá ativa indefinidamente.
Quando renovar o token
Você deve renovar o access_token
quando:
- Receber o erro
401 Unauthorized
em uma requisição; - O
access_token
estiver prestes a expirar (recomenda-se renovar quando faltar menos de 5 minutos); - O usuário retornar ao aplicativo após um período de inatividade.
Fazendo a requisição de renovação
Envie uma requisição POST para o end-point de tokens com grant_type=refresh_token
.
Exemplo com cURL:
curl -X POST https://api.rd.services/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d 'client_id=seu-client-id-aqui' \
-d 'client_secret=seu-client-secret-aqui' \
-d 'refresh_token=seu-refresh-token-aqui' \
-d 'grant_type=refresh_token'
Importante sobre o refresh_token
refresh_token
- O
refresh_token
é renovado a cada uso (rolling refresh token); - O novo
refresh_token
terá uma nova data de expiração (14 dias a partir da renovação); - Sempre armazene o novo
refresh_token
retornado, o antigo já não funciona mais; - Se o
refresh_token
expirar, o usuário precisará fazer o fluxo de autorização novamente.
Implementação recomendada
Antes de cada requisição à API:
- Verifique se o
access_token
atual está expirado ou prestes a expirar (recomenda-se renovar quando faltar menos de 5 minutos); - Se sim, use o
refresh_token
para obter um novoaccess_token
; - Substitua o par de tokens anterior (
access_token
erefresh_token
) pelo novo par recebido na resposta da API; - Repita a requisição original com o novo token.