Passo 4 - Renovar Token de Acesso

Como renovar o 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:

  1. Receber o erro 401 Unauthorized em uma requisição
  2. O access_token estiver prestes a expirar (recomenda-se renovar quando faltar menos de 5 minutos)
  3. Iniciar uma nova sessão do seu aplicativo
  4. 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 endpoint de tokens com grant_type=refresh_token. O endpoint varia conforme o ambiente:

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

  • 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

  1. 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 novo access_token
    • Substitua o par de tokens anterior (access_token e refresh_token) pelo novo par recebido na resposta da API.
    • Repita a requisição original com o novo token