O Ações de conversa vai ser descontinuado em 13 de junho de 2023. Para mais informações, consulte Desativação do recurso Ações de conversa.

Guia de conceitos do Login do Google

O Login do Google (GSI, na sigla em inglês) para o Google Assistente oferece a experiência de vinculação mais simples para os usuários e é o fluxo mais fácil para os desenvolvedores implementarem. Com a GSI, sua ação pode solicitar acesso ao perfil do Google do usuário durante uma conversa e, se o usuário consentir, receber o nome, o endereço de e-mail e a foto do perfil do usuário. Sua ação pode usar essas informações para verificar se o usuário tem uma Conta do Google no seu sistema. Caso contrário, a ação pergunta ao usuário se ele quer criar uma nova conta no sistema com base nas informações do perfil do Google.

A GSI é a solução recomendada para vincular contas se uma das seguintes condições se aplicar:

  • Você não tem um sistema de autenticação e/ou espera que todos os seus usuários tenham uma Conta do Google. Por exemplo, se a ação segmenta especificamente o Assistente, é esperado que todos os usuários tenham Contas do Google.
  • Você tem um sistema de autenticação existente e só quer vincular os usuários que fizeram login no sistema usando as Contas do Google.

Para verificar se a GSI é a solução certa para você, consulte a página Escolher o tipo de vinculação da sua conta.

Termos-chave

Antes de ler sobre como a GSI funciona, familiarize-se com os seguintes termos:

  • Token de ID do Google:uma declaração assinada de identidade de um usuário que contém informações básicas do perfil do Google (nome, endereço de e-mail e foto do perfil) do usuário. Um token de código do Google é um JSON Web Token (JWT).

    Veja a seguir um exemplo de token decodificado:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus: uma propriedade definida pelo sistema para indicar se a sessão atual tem um usuário verificado.

  • user.accountLinkingStatus: uma propriedade definida pelo sistema para indicar se o usuário na sessão atual tem uma identidade vinculada.

  • Cenário do sistema de vinculação de contas: uma cena predefinida que implementa o fluxo de confirmação para vinculação de contas e pode ser personalizada para casos de uso específicos.

Como funciona

O fluxo fundamental da GSI é o seguinte:

  1. Seu Action solicita ao usuário permissão para acessar o perfil do Google dele.
  2. Depois que o usuário dá o consentimento, sua ação recebe um token de ID do Google que contém as informações do perfil do usuário.
  3. Valide e decodifique o token para ler o conteúdo do perfil. Se você usar a biblioteca de fulfillment do Actions on Google para Node.js, ela validará e decodificará o token para você.
  4. Seu Action usa esse token para verificar se as informações do perfil do Google do usuário existem no sistema.

    1. Caso isso aconteça, o usuário já fez login no seu sistema com a Conta do Google. O usuário pode continuar a conversa com o Google Assistente com a identidade vinculada à Conta do Google.
    2. Caso contrário, o usuário poderá criar uma nova conta no seu sistema com as informações contidas no token de código do Google. O usuário pode continuar a conversa com o Google Assistente com a nova conta vinculada.

Fluxos de login do Google

Esta seção descreve os vários fluxos que podem ocorrer com o Login do Google.

Fluxo 1: As informações do usuário existem em seu sistema

O diagrama a seguir mostra o fluxo completo que ocorre com a GSI quando as informações do usuário já existem no sistema:

Nesse caso, você faz a transição para a cena do sistema de vinculação de contas e fornece uma justificativa personalizada. Essa cena pede permissão ao usuário para acessar as informações do perfil do Google.

Depois que o usuário consente, o Google Assistente envia uma solicitação com as informações de perfil de user@gmail.com. Nesse caso, as informações contidas no token de ID do Google para user@gmail.com correspondem a uma conta no seu sistema. Portanto, a identidade do usuário na sua ação é automaticamente vinculada a essa conta. Em seguida, o webhook pode ler a ordem usual do usuário de um banco de dados e responder de acordo.

Fluxo 2: as informações do usuário não existem no sistema

O diagrama a seguir mostra o fluxo completo que ocorre com a GSI quando as informações do usuário não existem no sistema:

Nesse caso, as informações contidas no token de ID do Google para user@gmail.com não correspondem a uma conta no seu sistema. Portanto, o Google Assistente pergunta ao usuário se ele quer criar uma nova conta. O usuário pode concluir o processo de criação da conta por voz em vez de transferir para um dispositivo filtrado.

Quando o usuário concorda em criar uma conta, seu serviço usa as informações no token de código (nome e endereço de e-mail do usuário) para criar uma conta para o usuário. Depois que a conta é criada, a identidade do usuário na sua ação é vinculada à nova Conta do Google.

Nesse caso, o usuário não tem um pedido normal porque é novo no serviço, então sua ação pergunta o que ele quer pedir. Você também pode perguntar ao usuário se ele quer definir a ordem mais recente como a normal.