> ## Documentation Index
> Fetch the complete documentation index at: https://br.developers.hubspot.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Como gerenciar tokens de acesso OAuth

<style>
  {`
    code {
      text-wrap:nowrap!important;
    }
    td code {
      text-wrap: wrap!important;
    }
    `}
</style>

Use a API de tokens OAuth para gerar e gerenciar os tokens necessários para autorizar seu [aplicativo público](/apps/legacy-apps/public-apps/overview) e as solicitações que ele faz. Por exemplo, você precisará usar essa API para buscar os tokens de acesso inicial e atualização durante o processo de instalação do aplicativo. Você o usará para continuar gerando novos tokens quando os antigos expirarem. Saiba mais sobre como [trabalhar com OAuth](/apps/legacy-apps/authentication/working-with-oauth).

Antes de usar esses pontos de extremidade, você terá que [criar um aplicativo público](/apps/legacy-apps/public-apps/overview). Um usuário precisará então instalá-lo em sua conta para [iniciar o acesso por OAuth](/apps/legacy-apps/authentication/working-with-oauth#initiating-an-integration-with-oauth-2-0).

## Iniciar acesso de OAuth

Depois de criar seu aplicativo, um usuário pode instalá-lo em sua conta HubSpot usando o URL de instalação localizado nas configurações do seu aplicativo, que incluirá o `client_id`, `redirect_uri` e `scopes` como parâmetros de consulta. Você também pode incluir `optional_scopes` e `state`, se necessário.

Depois que um usuário autorizar seu aplicativo e instalá-lo em sua conta, o URL de redirecionamento será anexado com um valor `code`, que você poderá usar para [gerar um token de acesso e um token de atualização](#generate-initial-access-and-refresh-tokens). O token de acesso será usado para autenticar solicitações feitas pelo seu aplicativo, enquanto o token de atualização será usado para obter um novo token de acesso quando o atual expirar.

Saiba mais sobre como [iniciar o OAuth para seu aplicativo](/apps/legacy-apps/authentication/working-with-oauth#set-up-oauth-authentication).

## Gerar acesso inicial e atualizar tokens

Para obter acesso OAuth e os tokens de atualização, faça uma solicitação `POST` codificada em formato de URL para `/oauth/v1/token`. No corpo da solicitação, você especificará vários parâmetros de autenticação, como `client_id` e `client_secret`, juntamente com o `code` repassado pelo URL de redirecionamento.

Depois que um usuário autorizar seu aplicativo, o URL de redirecionamento será anexado a um valor `code`. Usando esse código, você gerará o token de acesso inicial e o token de atualização. Os tokens de acesso são de curta duração e você pode verificar o parâmetro `expires_in` ao gerar um token de acesso para determinar seu tempo de vida (em segundos).

Por exemplo, sua solicitação pode ser semelhante a esta:

```shell theme={null}
curl --request POST \
  --url https://api.hubapi.com/oauth/v1/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data 'grant_type=authorization_code&code=bcf33c57-dd7a-c7eb-4179-9241-e01bd&redirect_uri=https://www.domain.com/redirect&client_id=7933b042-0952-4e7d-a327dab-3dc&client_secret=7a572d8a-69bf-44c6-9a34-416aad3ad5'
```

| Parâmetro       | Tipo   | Descrição                                                                                   |
| --------------- | ------ | ------------------------------------------------------------------------------------------- |
| `grant_type`    | String | Deve ser `authorization_code` para que a solicitação gere acesso inicial e atualize tokens. |
| `code`          | String | O `code` retornado no URL de redirecionamento depois que o usuário instala o aplicativo.    |
| `redirect_uri`  | String | O URL de redirecionamento definido no aplicativo.                                           |
| `client_id`     | String | A ID do cliente do aplicativo.                                                              |
| `client_secret` | String | O segredo do cliente do aplicativo.                                                         |

Na resposta, você receberá o token de acesso junto com o token de atualização, que pode ser usado para atualizar o token de acesso. O campo `expires_in` especifica quanto tempo o token de acesso durará (em segundos).

```json theme={null}
{
  "token_type": "bearer",
  "refresh_token": "1e8fbfb1-8e96-4826-8b8d-c8af73715",
  "access_token": "CIrToaiiMhIHAAEAQAAAARiO1ooBIOP0sgEokuLtAEaOaTFnToZ3VjUbtl46MAAAAEAAAAAgAAAAAAAAAAAACAAAAAAAOABAAAAAAAAAAAAAAAQAkIUVrptEzQ4hQHP89Eoahkq-p7dVIAWgBgAA",
  "expires_in": 1800
}
```

## Atualizar um token de acesso

Usando um token de atualização, você pode gerar um novo token de acesso fazendo uma solicitação `POST` codificada em formato de URL para `/oauth/v1/token`. No corpo da solicitação, você especificará `grant_type`, `client_id`, `client_secret` e `refresh_token`.

```shell theme={null}
curl --request POST \
  --url https://api.hubapi.com/oauth/v1/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data 'grant_type=refresh_token&refresh_token=1e8fbfb1-8e96-4826-8b8d-c8af73715&client_id=7933b042-0952-4e7d-a327dab-3dc&client_secret=7a572d8a-69bf-44c6-9a34-416aad3ad5'
```

| Parâmetro       | Tipo   | Descrição                                                                                                     |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------- |
| `grant_type`    | String | Deve ser `refresh_token` para que a solicitação gere novos tokens de acesso a partir do token de atualização. |
| `refresh_token` | String | O valor do token de atualização.                                                                              |
| `client_id`     | String | A ID do cliente do aplicativo.                                                                                |
| `client_secret` | String | O segredo do cliente do aplicativo.                                                                           |

## Recuperar metadados do token de acesso

Para obter informações sobre um token de acesso OAuth, incluindo o usuário para o qual o token foi criado e seu Hub ID correspondente, faça uma solicitação `GET` para `/oauth/v1/access-tokens/{token}`.

Você receberá uma resposta contendo informações sobre o token de acesso do usuário e sua conta HubSpot.

```json theme={null}
{
  "token": "CNaKSIHAAEAQAAAARiO1ooBIOP0sgEokuLtATIU5m7Kzmjj0ihJJuKFq1TcIiHCqwE6MAAAAEEAAAAAAAAAAgAIUfmerBenQwc07ZHXy6atYNNW8XCVKA25hMVIAWgBgAA",
  "user": "user@domain.com",
  "hub_domain": "meowmix.com",
  "scopes": ["oauth", "crm.objects.contacts.read", "crm.objects.contacts.write"],
  "signed_access_token": {
    "expiresAt": 1727190403926,
    "scopes": "AAEAAAAQ==",
    "hubId": 1234567,
    "userId": 293199,
    "appId": 111111,
    "signature": "5m7ihJJuKFq1TcIiHCqwE=",
    "scopeToScopeGroupPks": "AAAAQAAAAAAAAAACAAAAAAAAAAAAAIAAAAAAA4AEAAAAAAAAAAAAAABAC",
    "newSignature": "fme07ZHXy6atYNNW8XCU=",
    "hublet": "na1",
    "trialScopes": "",
    "trialScopeToScopeGroupPks": "",
    "isUserLevel": false
  },
  "hub_id": 1234567,
  "app_id": 111111,
  "expires_in": 1754,
  "user_id": 293199,
  "token_type": "access"
}
```

<Warning>
  ### Observação:

  Espera-se que os tokens de acesso da HubSpot flutuem em tamanho ao longo do tempo, à medida que atualizações forem feitas nas informações codificadas do token. É recomendável permitir que os tokens tenham até 512 caracteres para compensar quaisquer alterações.
</Warning>

## Exclui um token de atualização.

Se um usuário desinstalar seu aplicativo, você poderá excluir o token de atualização fazendo uma solicitação `DELETE` para `/oauth/v1/refresh-tokens/{token}`. Isso excluirá apenas o token de atualização. Os tokens de acesso gerados com o token de atualização não serão afetados. Além disso, isso não desinstalará o aplicativo nas contas da HubSpot nem inibirá a sincronização de dados entre o aplicativo e a conta.
