Configurar o OAuth para seu aplicativo

Para configurar o OAuth no seu app, configure um fluxo de trabalho do OAuth e ative os escopos do OAuth da API Data Portability.

Configurar um fluxo de trabalho OAuth

Para configurar um fluxo OAuth para seu app, siga as etapas básicas na documentação do Google Identity.

A maioria dos desenvolvedores usa o fluxo de apps da Web do lado do servidor para receber o consentimento do OAuth, mas você também pode usar o fluxo de apps da Web JavaScript ou o fluxo de apps para dispositivos móveis e computadores.

As exportações podem levar mais tempo do que a duração de um token de acesso, ou o usuário pode conceder 30 ou 180 dias de acesso. Talvez seja necessário receber um token de atualização e trocá-lo periodicamente por um token de acesso novo. Para mais detalhes, consulte Como atualizar um token de acesso para apps da Web e Como atualizar um token de acesso para apps para dispositivos móveis e computadores.

Importante: a renovação do token OAuth só estará disponível para os usuários se o cliente OAuth tiver um status de publicação de Em produção, não Em teste. Além disso, os tokens concedidos a clientes OAuth com um status de publicação Teste sempre expiram em 7 dias, mesmo que você selecione uma duração de 30 ou 180 dias. Para saber mais, consulte Como configurar a tela de consentimento OAuth.

Escopos da API Data Portability OAuth

Ao configurar o aplicativo da API Data Portability para OAuth, ative os escopos OAuth da API Data Portability que forem relevantes para o aplicativo. Alguns escopos são sensitive e restricted e estão sujeitos a requisitos adicionais.

Ao adicionar os escopos da API Data Portability ao fluxo do OAuth, pode haver casos em que o usuário concede consentimento para alguns escopos, mas não para todos. O app precisa ser capaz de lidar com esses casos:

  • Como permitir exportações de dados parciais
  • Notificar o usuário de que ele não selecionou todos os escopos necessários (e falhar graciosamente)
  • Pedir os consentimentos restantes ao usuário

Além disso, o usuário pode escolher se vai conceder acesso aos dados uma vez ou por 30 ou 180 dias.

  • Se um usuário conceder acesso único, seu app poderá realizar uma exportação de dados para esse consentimento específico. Para fazer o download dos dados novamente, é necessário um novo consentimento do usuário.
  • Se um usuário conceder acesso com base no tempo, seu app poderá realizar exportações de dados durante o período especificado ou até que o usuário revogue o consentimento.
  • Também é possível aplicar filtros de tempo à sua solicitação para exportar dados de um período específico, como os últimos seis meses.

Além disso, durante o fluxo do OAuth, o app não sabe qual Conta do Google foi usada para dar consentimento. O token OAuth que seu aplicativo recebe é opaco.

Para saber como os usuários compartilham dados, consulte Compartilhar uma cópia dos seus dados com terceiros.

Restrições de escopo

Esta seção aborda restrições em escopos que resultam em erros.

Escopos mistos

As solicitações de escopos da API Data Portability (como https://www.googleapis.com/auth/dataportability.*) não podem ser misturadas com outros escopos (como https://www.googleapis.com/auth/userinfo.email). Confira um exemplo de solicitação inválida, com a parte restrita em negrito:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search+https://www.googleapis.com/auth/userinfo.email&
include_granted_scopes=false

Escopos concedidos anteriormente

Nunca defina include_granted_scopes=true ao solicitar escopos do DPAPI. Confira um exemplo de solicitação inválida, com a parte restrita em negrito:

https://accounts.google.com/o/oauth2/v2/auth?
client_id=client_id&
redirect_uri=redirect_uri&
response_type=token&
scope=https://www.googleapis.com/auth/dataportability.myactivity.search&
include_granted_scopes=true

Muitos escopos

Se a solicitação tiver muitos escopos anexados, poderá ocorrer um erro 400 bad request. Isso ocorre quando o comprimento do URL cresce além do que é aceito nos navegadores. Para resolver, divida suas solicitações de escopos em vários lotes menores e use a autorização incremental para solicitar consentimento para cada lote.

Categorias de escopos

Para conferir a lista de todos os escopos do OAuth compatíveis com a API Data Portability e as categorias, consulte Escopos do OAuth disponíveis. Para conferir uma lista de todos os grupos de recursos e escopos OAuth aceitos por um serviço específico, consulte a página de referência do esquema desse serviço.