Esta é a Central do desenvolvedor do Google Home, a nova plataforma para aprender a desenvolver ações de casa inteligente. Observação: você continua criando ações no Console do Actions.

Solicitar sincronização

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
, para dar registro/ para informar de ele / auto autodi —minmin esperaminminminminminminminminminminmindes Depois suas Depois Depois Depois Depois Depois Depois Depois de suasesta de de meed impr impr poderia poderias para2 tenta poderia para alterar alterar alterartiti alterartióti alterar alterar alterarilhailhailha Informaçõesilha Foiilhailhailhailhailha bastante bastante226662 particularesin particulares destain desta particulares particulares particulares particulares com particulares com particulares com particulares com particulares para agora para inserir inserir inserir inserir inserir dessa e dessa Caso; dessa dessa dessa dessa dessa dessa

A solicitação de sincronização aciona uma solicitação SYNC para o fulfillment de qualquer usuário do Google com dispositivos que tenham o agentUserId especificado associado a eles, que foi enviado na solicitação original de SYNC. Dessa forma, você pode atualizar os dispositivos dos usuários sem desvincular e vincular novamente a conta. Todos os usuários vinculados a esse identificador receberão uma solicitação SYNC.

É necessário acionar uma solicitação SYNC:

  • Se o usuário adicionar um novo dispositivo.
  • Se o usuário remover um dispositivo existente.
  • Se o usuário renomear um dispositivo atual
  • Se você implementar um novo tipo de dispositivo, característica ou adicionar um novo recurso de dispositivo.

Começar

Para implementar a sincronização de solicitações, siga estas etapas:

Ativar a API Google HomeGraph

  1. No Console do Google Cloud Platform, acesse a página API HomeGraph.

    Acessar a página da API HomeGraph
  2. Selecione o projeto que corresponde ao ID do seu projeto de casa inteligente.
  3. Clique em ATIVAR.

Criar uma chave de conta de serviço

Siga estas instruções para gerar uma chave de conta de serviço no Console do GCP:

Observação: verifique se você está usando o projeto correto do GCP ao realizar essas etapas. Este é o projeto que corresponde ao ID do seu projeto de casa inteligente.
  1. No Console do GCP, acesse a página Criar chave da conta de serviço.

    Acessar página "Criar chave da conta de serviço"
  2. Na lista Conta de serviço, selecione Nova conta de serviço.
  3. No campo Nome da conta de serviço, insira um nome.
  4. No campo ID da conta de serviço, insira um ID.
  5. Na lista Papel, selecione Contas de serviço > Criador do token da conta de serviço.

  6. Em Tipo de chave, selecione a opção JSON.

  7. Clique em Criar. Um arquivo JSON que contém a chave é transferido por download para o computador.

Chamar a API

HTTP

A API Home Graph fornece um endpoint HTTP

  1. Use o arquivo JSON da conta de serviço salvo para criar um JSON Web Token (JWT). Para mais informações, consulte Como autenticar usando uma conta de serviço.
  2. Consiga um token de acesso do OAuth 2.0 com o escopo https://www.googleapis.com/auth/homegraph usando oauth2l:
  3. oauth2l fetch --credentials service-account.json \
      --scope https://www.googleapis.com/auth/homegraph
    
  4. Crie a solicitação JSON com agentUserId. Veja um exemplo de solicitação JSON para a sincronização de solicitações:
  5. {
      "agentUserId": "user-123"
    }
    
  6. Combinar o JSON de solicitação de sincronização e o token na sua solicitação HTTP POST para o endpoint do Google Home Graph. Veja um exemplo de como fazer a solicitação na linha de comando usando curl como teste:
  7. curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \
      -H "Content-Type: application/json" \
      -d @request-body.json \
      "https://homegraph.googleapis.com/v1/devices:requestSync"
    

gRPC

A API Home Graph fornece um endpoint gRPC

  1. Veja a definição de serviço de buffers de protocolo da API Home Graph.
  2. Siga a documentação do desenvolvedor do gRPC para gerar stubs de clientes para uma das linguagens compatíveis.
  3. Chame o método RequestSync.

Node.js

O cliente Node.js das APIs do Google fornece vinculações para a API Home Graph.

  1. Inicialize o serviço google.homegraph usando o Application Default Credentials.
  2. Chame o método requestSync com RequestSyncDevicesRequest. Ela retorna uma Promise com uma RequestSyncDevicesResponse vazia.
const homegraphClient = homegraph({
  version: 'v1',
  auth: new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/homegraph'
  })
});

const res = await homegraphClient.devices.requestSync({
  requestBody: {
    agentUserId: 'PLACEHOLDER-USER-ID',
    async: false
  }
});
    

Java

A biblioteca de cliente da API HomeGraph para Java fornece vinculações para a API do Home Graph.

  1. Inicialize o HomeGraphApiService usando o Application Default Credentials.
  2. Chame o método requestSync usando RequestSyncDevicesRequest. Ele retorna um ReportStateAndNotificationResponse vazio.
// Get Application Default credentials.
GoogleCredentials credentials =
    GoogleCredentials.getApplicationDefault()
        .createScoped(List.of("https://www.googleapis.com/auth/homegraph"));

// Create Home Graph service client.
HomeGraphService homegraphService =
    new HomeGraphService.Builder(
            GoogleNetHttpTransport.newTrustedTransport(),
            GsonFactory.getDefaultInstance(),
            new HttpCredentialsAdapter(credentials))
        .setApplicationName("HomeGraphExample/1.0")
        .build();

// Request sync.
RequestSyncDevicesRequest request =
    new RequestSyncDevicesRequest().setAgentUserId("PLACEHOLDER-USER-ID").setAsync(false);
homegraphService.devices().requestSync(request);
    

Respostas de erro

Talvez você receba uma das seguintes respostas de erro ao chamar o Request Sync. Essas respostas vêm na forma de códigos de status HTTP.

  • 400 Bad Request: o servidor não conseguiu processar a solicitação enviada pelo cliente devido a uma sintaxe inválida. As causas comuns incluem JSON incorreto ou o uso de null em vez de "" para um valor de string.
  • 403 Forbidden: o servidor não conseguiu processar a solicitação de agentUserId especificada devido a um erro ao atualizar o token. Verifique se o endpoint do OAuth responde corretamente para atualizar as solicitações de token e verificar o status de vinculação de contas do usuário.
  • 404 Not Found: o recurso solicitado não foi encontrado, mas poderá estar disponível no futuro. Normalmente, isso significa que a conta de usuário não está vinculada ao Google ou recebemos um agentUserId inválido. Verifique se o agentUserId corresponde ao valor fornecido na resposta SYNC e se você está processando corretamente as intents DISCONNECT.
  • 429 Too Many Requests: o número máximo de solicitações de sincronização simultâneas foi excedido para o parâmetro agentUserId especificado. Um autor da chamada pode emitir apenas uma solicitação de sincronização simultânea, a menos que a sinalização async esteja definida como verdadeira.