DeveloperOs podem usar a API SDM para visualizar e gerenciar dispositivos Google Nest em nome do users. A API SDM valida se o user gerencia os dispositivos acessados, se o user concordou com a developer leitura ou gravação das características de cada dispositivo e se o developer foi incluído na lista de permissões para acesso a cada característica.
Para usar a API SDM no gerenciamento de dispositivos, o developer precisa primeiro ser autorizado pelo user.
Para um tutorial sobre o processo de autorização, consulte a página Autorizar uma conta do Device Access guia de início rápido.
Para receber ajuda com a solução de erros de autorização, consulte Authorization Errors.
Fluxo do OAuth
A API SDM usa um fluxo do Google OAuth de três etapas para user autorização:
- Quando o a user deseja autorizar o a developer para o gerenciamento de dispositivos Nest, ele envia o user para o PCM, em que o user faz login na Conta do Google. developer
- O user seleciona as permissões a serem concedidas ao developer no PCM.
- O user fornece consentimento pelo OAuth, concedendo o developer um código de autorização ao.
- O developer usa o código de autorização para recuperar um token de acesso.
- O developer usa o token de acesso com chamadas para a API SDM para gerenciamento de dispositivos.
Para saber mais sobre o Google OAuth e como configurar, consulte Usar o OAuth 2.0 para acessar as APIs do Google.
Partner Connections Manager (PCM)
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 user escolhe a quais itens 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 características, que são coleções de características a que o developer terá acesso. Alguns grupos de características são vinculados, dependendo do tipo de integração que o developer está oferecendo ao user, e o user precisa conceder permissões para esses grupos de características vinculados para ativar essa integração. Caso contrário, o usuário poderá conceder permissões para grupos de características individuais e não vinculados, conforme desejado.
Ativar o PCM
Para ativar a visualização do PCM para um user, substitua o endpoint padrão do OAuth 2.0 da API do Google por esse novo endpoint do OAuth para a solicitação de autorização:
https://nestservices.google.com/partnerconnections/project-id/authUse 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 ID. Um ID do cliente OAuth precisa ser válido e exclusivo para um project, e não pode ser compartilhado com outro projects. |
access_type |
Valor a ser usado: offline |
prompt |
Valor a ser usado: consent |
response_type |
Valor a ser usado: codeUm código de autorização é esperado em retorno. |
scope |
Valor a ser usado: https://www.googleapis.com/auth/sdm.service
O escopo da API SDM. |
state |
Opcional. Um valor opaco usado pelo developer cliente para manter o estado entre a solicitação e o callback. |
Exemplo de URL do 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.serviceDepois que o user concede permissão, um código de autorização é retornado
como o code parâmetro no URI de redirecionamento. Use esse código para receber um token de acesso.
Adicionar o PCM ao seu app
No seu app, adicione a visualização do PCM usando este URL:
https://nestservices.google.com/partnerconnectionsQuando o user está conectado, essa página mostra todos os s vinculados Device Access developer, bem como uma lista de todas as estruturas e dispositivos com botões para conceder e revogar permissões. O user também pode desconectar uma conexão de parceiro 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 serão "não verificados", 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 é necessária.
Uma tela "O Google não verificou este app" pode aparecer durante o processo de autorização, que aparece se o escopo sdm.service não estiver configurado na sua tela de permissão OAuth no Google Cloud. Essa tela pode ser ignorada clicando na opção Avançado e em Acessar Nome do projeto (não seguro).
Consulte a tela do app não verificado para mais informações.
Tokens de acesso
Todas as chamadas para a API SDM para gerenciar estruturas e dispositivos precisam usar o token de acesso exclusivo concedido ao developer pelo user durante a autorização. Os tokens de acesso são de curta duração e precisam ser atualizados regularmente para garantir o acesso contínuo.
Se o a user revogar developer o acesso a uma estrutura ou um dispositivo, o token de acesso vai expirar imediatamente e não poderá ser atualizado, e o developer não poderá mais chamar a API SDM em nome desse user.
Revogar a autorização da conta
Há várias maneiras de desautorizar uma Conta do Google. O método preferencial é que o usuário use o Partner Connections Manager (PCM) para modificar as permissões da conta. Consulte Modificar as permissões da conta para mais informações. Um token de acesso também pode ser revogado pelos seguintes métodos:
O usuário pode revogar em https://myaccount.google.com/permissions.
O desenvolvedor pode transmitir o token de acesso para o endpoint
https://oauth2.googleapis.com/revoke. Para saber mais sobre o Google OAuth e a revogação de tokens, consulte Revogar um token.
WebViews incorporadas
Uma nova política de navegadores seguros proíbe solicitações do Google OAuth em bibliotecas de navegadores incorporados, geralmente chamadas de WebViews incorporadas. Todas as WebViews incorporadas serão bloqueadas. As bibliotecas de WebViews incorporadas são problemáticas porque permitem que um desenvolvedor mal-intencionado intercepte e altere as comunicações entre o Google e os usuários. As WebViews incorporadas não afetam apenas a segurança da conta, mas também a usabilidade do aplicativo.
Se você foi afetado por essa política, consulte o artigo de suporte Mudanças de segurança futuras no endpoint de autorização do OAuth 2.0 do Google em WebViews incorporadas.