Guia do Quickstart do OAuth
Antes de começar
Antes de começar a usar o OAuth com o HubSpot, você precisará ter:
- Uma conta de desenvolvedor
- Um aplicativo associado à sua conta de desenvolvedor
- Uma conta da HubSpot*para instalar seu aplicativo (você pode usar uma conta existente ou criar uma conta de teste)
* Você precisa ser um Superadministrador para instalar um aplicativo em uma conta da HubSpot
Como ele funciona
O HubSpot oferece suporte ao tipo de concessão do Código de autorização do OAuth 2.0, que pode estar dividido em quatro etapas básicas:
- O aplicativo abre uma janela do navegador para direcionar o usuário ao servidor OAuth 2.0 do HubSpot
- O usuário avalia as permissões solicitadas e concede acesso ao aplicativo
- O usuário é redirecionado de volta ao aplicativo com um código de autorização na Query String da URL
- O aplicativo envia uma solicitação ao servidor OAuth 2.0 para trocar o código de autorização por um token de acesso
Neste guia
- Aplicativo de início rápido: um aplicativo de demonstração Node.js que faz a autenticação com o servidor OAuth 2.0 do HubSpot
- Obter tokens de OAuth 2.0: como autorizar seu aplicativo com usuários
- Usar tokens do OAuth 2.0: como fazer consultas com um token
- Atualizar tokens do OAuth 2.0: como usar o token de atualização fornecido pela HubSpot
Observação: todos os exemplos de código neste guia são desenvolvidos em JavaScript (Node.js)
Aplicativo Quickstart
Se essa é a primeira vez que você está usando a autenticação OAuth com APIs da HubSpot, consulte o Aplicativo Quickstart do OAuth 2.0 desenvolvido em Node.js. Esse aplicativo de exemplo tem por finalidade ensinar você começar a usar o OAuth 2.0 o mais rápido possível. Ele demonstra todas as etapas descritas abaixo em Obtendo tokens do OAuth 2.0.
Obtendo tokens do OAuth 2.0
Etapa 1: crie o URL de autorização e direcione o usuário para o servidor OAuth 2.0 da HubSpot
Quando um usuário é direcionado para o servidor OAuth 2.0 da HubSpot, a primeira etapa consiste na criação do URL de autorização. Isso identificará seu aplicativo e definirá os recursos (escopos) cujo acesso ele está solicitando em nome do usuário. Os parâmetros de consulta que você pode passar como parte de um URL de autorização são mostrados abaixo. Para obter informações mais detalhadas sobre essa etapa, leia o documento de referência.
Parâmetro | Obrigatório? | Descrição | Exemplo |
---|---|---|---|
client_id |
Sim | O ID do cliente identifica seu aplicativo. Encontre-o na página de configurações do seu aplicativo. |
|
scope |
Sim | Os escopos que seu aplicativo está solicitando, separados espaços codificados por URL. |
|
redirect_uri |
Sim | O URL para o qual o usuário será redirecionado depois que ele autorizar seu aplicativo para os escopos solicitados. Para aplicativos de produção, o https é obrigatório. |
|
optional_scope |
Não | Os escopos que são opcionais para o aplicativo e serão ignorados se o portal do HubSpot selecionado não tiver acesso a esses produtos |
|
state |
Não | Um valor de string exclusivo que pode ser usado para manter o estado do usuário quando ele for redirecionado de volta ao aplicativo. |
|
Depois de criar seu URL, comece o processo do OAuth 2.0 direcionando o usuário a ele.
Exemplos
Usando um redirecionamento no lado do servidor:
Usando um link HTML:
Codificar um estado de redirecionamento do usuário adicional
Alguns aplicativos podem precisar redirecionar o usuário para locais diferentes. Por exemplo, um aplicativo pode querer redirecionar os usuários para diferentes subdomínios da sua integração (por exemplo, userA.integration.com e userB.integration.com). Para fazer isso, use o parâmetro state
para codificar mais informações sobre o estado do usuário:
1. Gerencie e armazene um valor nonce para o parâmetro state.
2. Armazene o estado do usuário em um armazenamento de dados local usando o nonce como sua chave.
3. Inclua o valor nonce como o parâmetro state no URL de autorização.
4. Quando o usuário for autenticado e redirecionado para o URL de redirecionamento, valide o parâmetro state e use-o como a chave para recuperar o estado do usuário que foi armazenado.
5. Depois, redirecione o usuário conforme necessário (por exemplo, redirecionar novamente para um URL específico do usuário).
Etapa 2: o HubSpot solicita o consentimento ao usuário
O HubSpot exibe uma janela de consentimento para o usuário mostrando o nome do aplicativo e uma descrição resumida dos serviços de API do HubSpot a que está solicitando permissão de acesso. O usuário pode conceder acesso ao aplicativo.
Observação: o usuário que está instalando o aplicativo deve ter acesso a todos os escopos solicitados. Se ele não tiver o acesso exigido, a instalação falhará e ele será direcionado a uma página de erro. Se esta página de erro de permissões for exibida para um usuário, ele precisará ser um Superadministrador para instalar o aplicativo.
Neste estágio, seu aplicativo não faz nada. Assim que o acesso for concedido, o servidor OAuth 2.0 da HubSpot enviará uma solicitação para o URI de retorno definido no URL de autorização.
Etapa 3: tratar a resposta do servidor OAuth 2.0
Depois que o usuário concluir a solicitação de consentimento na Etapa 2, o servidor OAuth 2.0 enviará uma solicitação GET
para o URI especificado em seu URL de autenticação. Se não houver problemas e o usuário aprovar a solicitação de acesso, a solicitação para o URI de redirecionamento será devolvida com um parâmetro Query de código
anexado. Se o usuário não conceder acesso, nenhuma solicitação será enviada.
Exemplo:
Etapa 4: trocar o código de autorização para tokens
Após seu aplicativo receber um código de autorização do servidor OAuth 2.0, ele poderá trocar esse código para um token de acesso e atualização enviando uma solicitação POST
codificada por formulário para https://api.hubapi.com/oauth/v1/token
com os valores mostrados abaixo. Para obter informações mais detalhadas sobre essa etapa, reserve um tempo para ler este documento de referência.
Parâmetro | Descrição | Exemplo |
---|---|---|
grant_type |
Deve ser authorization_code |
authorization_code |
client_id |
ID do cliente de seu aplicativo | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret |
O segredo do cliente de seu aplicativo | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri |
O URI de redirecionamento de quando o usuário autorizou seu aplicativo | https://www.example.com/auth-callback |
code |
O código de autorização recebido do servidor OAuth 2.0 | 5771f587-2fe7-40e8-8784-042fb4bc2c31 |
Exemplo:
O corpo da resposta do token será dados JSON:
Observação: o token de acesso expirará após o número de segundos fornecido no campo expires_in
da resposta; atualmente 30 minutos. Para obter informações sobre como obter um novo token de acesso, consulte Atualizando tokens do OAuth 2.0.
Usando tokens do OAuth 2.0
Assim que o fluxo de código de autorização for concluído, seu aplicativo estará autorizado a fazer solicitações em nome do usuário. Para fazer isso, forneça o token como um token bearer no cabeçalho HTTP de Autorização
. Detalhes específicos podem ser encontrados no documento de referência.
Exemplo:
Observação: os tokens de acesso refletem os escopos solicitados ao aplicativo e não refletem as permissões ou limitações do que um usuário pode fazer em sua conta da HubSpot. Por exemplo, se um usuário tiver permissões para visualizar apenas contatos de propriedade, mas autorizar uma solicitação para o escopo crm.objects.contacts.read
, o token de acesso resultante poderá visualizar todos os contatos na conta e não apenas aqueles de propriedade do usuário que está autorizando.
Atualizando tokens de OAuth 2.0
Os tokens de acesso do OAuth expiram periodicamente. A finalidade é garantir que, se ele estiver comprometido, os participantes só terão acesso por um curto período. O tempo de vida útil do token em segundos é especificado no campo expires_in
quando um código de autorização é trocado para um token de acesso.
Seu aplicativo pode trocar o token de atualização recebido por um novo token de acesso enviando uma solicitação POST
para https://api.hubapi.com/oauth/v1/token
com os valores abaixo. Para obter informações mais detalhadas sobre essa etapa, consulte o documento de referência.
Parâmetro | Descrição | Exemplo |
---|---|---|
grant_type |
Deve ser refresh_token |
refresh_token |
client_id |
ID do cliente de seu aplicativo | 7fff1e36-2d40-4ae1-bbb1-5266d59564fb |
client_secret |
O segredo do cliente de seu aplicativo | 7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d |
redirect_uri |
O URI de redirecionamento de quando o usuário autorizou seu aplicativo | https://www.example.com/auth-callback |
refresh_token |
O token de atualização recebeu quando o usuário autorizou seu aplicativo | b9443019-30fe-4df1-a67e-3d75cbd0f726 |
Exemplo:
O corpo da resposta do token será dados JSON:
O novo token de acesso pode ser usado para fazer chamadas em nome do usuário. Quando o novo token expirar, siga as mesmas etapas novamente para recuperar um novo token.