Autorização

Developers podem usar a API SDM para ver e gerenciar dispositivos Google Nest em nome de users. A API SDM valida que o user gerencia os dispositivos que estão sendo acessados, que o user consentiu com adeveloper leitura ou gravação das características de cada dispositivo e que odeveloper foi colocado na lista de permissões para acesso a cada característica.

Para usar a API SDM no gerenciamento de dispositivos, o developer precisa ser autorizado pela user.

Para ver instruções detalhadas do processo de autorização, consulte a página Autorizar uma conta do Device Access Guia de início rápido.

Para ajuda na solução de problemas de erros de autorização, consulte Erros de autorização.

Fluxo do OAuth

A API SDM usa um fluxo do Google OAuth de três etapas para autorizaçãouser :

  • Quando o a user quer autorizar a developer o gerenciamento de dispositivos Nest, o developer envia ouser ao PCM, em que userfaz login na Conta do Google.
  • O user seleciona as permissões a serem concedidas ao developer no PCM.
  • O user fornece consentimento via OAuth, concedendo aodeveloper um código de autorização.
  • O developer usa o código de autorização para recuperar um token de acesso.
  • O developer usa o token de acesso com chamadas à API SDM para gerenciamento de dispositivos.

Para saber mais sobre o Google OAuth e como configurá-lo, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.

Gerente de conexões de parceiros (PCM, na sigla em inglês)

O PCM é fornecido pela API SDM. É uma visualização que lista todas as estruturas, dispositivos e opções de acesso que o user pode conceder ao developer. O userescolhe a que conceder acesso durante o processo de autorização e mantém o controle desse acesso.

As opções selecionadas no PCM são mapeadas para grupos de traços, que são conjuntos de características aos quais developer terá acesso. Alguns grupos de traços são vinculados, dependendo do tipo de integração que odeveloper oferece ao user, e o userprecisa conceder permissões a esses grupos para ativar essa integração. Caso contrário, o usuário poderá conceder permissões para grupos de traços individuais e desvinculados, conforme desejado.

Ativar PCM

Para ativar a visualização PCM de um user, substitua o endpoint OAuth 2.0 da API do Google padrão por esse novo endpoint OAuth da solicitação de autorização:

https://nestservices.google.com/partnerconnections/project-id/auth

Use estes parâmetros no URL:

Parâmetro Descrição
redirect_uri O URI para direcionar o user após a autorização bem-sucedida.
client_id O ID do cliente OAuth 2.0 do seu projeto do Google Cloud. Verifique se é o mesmo associado ao seu Project código. Observe que um ID do cliente OAuth precisa ser válido e único para um projecte não pode ser compartilhado com outros projects.
access_type Valor a ser usado: offline
prompt Valor a ser usado: consent
response_type Valor a ser usado: code
um código de autorização é esperado.
scope Valor a ser usado: https://www.googleapis.com/auth/sdm.service
o escopo da API do SDM.
state Opcional. Um valor opaco usado pelo cliente developer para manter o estado entre a solicitação e o callback.
linking_token O token de vinculação recebido do comando GetToken.

Exemplo de URL de PCM:

https://nestservices.google.com/partnerconnections/
  2f6989ca-c756-4625-8cdc-d5b1edfb2dcd/auth?
  redirect_uri=https://www.example.com/api/link/M258KP8OWYZDVQ&
  client_id=418235700063-sdkiav89orn5r1nvrcr5t210qqjimq8l.apps.googleusercontent.com&
  access_type=offline&
  prompt=consent&
  response_type=code&
  scope=https://www.googleapis.com/auth/sdm.service

Depois que user dá permissão, um código de autorização é retornado como o parâmetro code no URI de redirecionamento. Use esse código para receber um token de acesso.

Para receber ajuda com erros encontrados ao acessar o PCM, consulte Referência do erro do Partner Connections Manager (PCM).

Adicionar o PCM ao app

No app, adicione a visualização PCM usando este URL:

https://nestservices.google.com/partnerconnections

Quando o user está conectado, esta página mostra todos os Device Access developers vinculados, bem como uma lista de todas as estruturas e dispositivos com botões de alternância para conceder e revogar permissões. O user também pode desconectar uma conexão de parceiros por parceiro nesta página.

Apps não verificados

A API SDM usa um escopo restrito, o que significa que todos os apps que usam esse escopo durante a autorização terão o status "Não verificado" a menos que a Verificação da API OAuth seja concluída. Ao usar Device Access para uso pessoal, a verificação da API OAuth não é obrigatória.

Talvez você veja uma tela "O Google não verificou este app" durante o processo de autorização, que aparece se o escopo sdm.service não estiver configurado na tela de consentimento do OAuth no Google Cloud. É possível ignorar essa tela clicando na opção Avançado e, em seguida, clicando em Ir para Nome do projeto (não seguro).

Consulte Tela de app não verificado para ver mais informações.

Tokens de acesso

Todas as chamadas à API SDM para gerenciar estruturas e dispositivos autorizados precisam usar o token de acesso exclusivo concedido ao developer pela user durante a autorização. Os tokens de acesso têm curta duração e precisam ser atualizados regularmente para garantir o acesso contínuo.

Se a user depois revogar developer o acesso a uma estrutura ou a um dispositivo, o token de acesso expirará imediatamente e não poderá ser atualizado, e o developer não poderá mais chamar a API SDM em nome dele user.

Revogar autorização da conta

Há várias maneiras de desautorizar uma Conta do Google. O método preferencial é o usuário usar o Partner Connections Manager (PCM) para modificar as permissões da conta. Consulte Modificar permissões de conta para mais informações. Um token de acesso também pode ser revogado pelos seguintes métodos:

  1. O usuário pode revogar o acesso em https://myaccount.google.com/permissions.

  2. O desenvolvedor pode transmitir o token de acesso ao endpoint https://oauth2.googleapis.com/revoke. Para saber mais sobre o Google OAuth e a revogação de tokens, consulte Como revogar um token.

Visualizações da Web incorporadas

Uma nova política de navegador seguro proíbe solicitações do Google OAuth em bibliotecas de navegadores incorporadas, geralmente chamadas de visualizações da Web incorporadas. Todas as visualizações da Web incorporadas serão bloqueadas. As bibliotecas incorporadas de WebView são problemáticas porque permitem que um desenvolvedor mal-intencionado intercepte e altere as comunicações entre o Google e os usuários dele. As visualizações da Web incorporadas não afetam apenas a segurança da conta, mas também a usabilidade do seu aplicativo.

Se você for afetado por essa política, consulte o artigo de suporte Próximas alterações de segurança no endpoint de autorização do OAuth 2.0 do Google em WebViews incorporados.