Configurar notificações do Pub/Sub

As notificações do Pub/Sub oferecem uma maneira de receber alertas sobre dispositivos recém-registrados, relatórios de dispositivos e comandos emitidos recentemente.

Para configurar notificações do Pub/Sub, é preciso ativar a API Pub/Sub e criar um tópico. Para receber mensagens publicadas em um tópico, crie uma assinatura nele. A assinatura conecta um tópico a um aplicativo do assinante, que recebe e processa as mensagens publicadas no tópico. Depois de criar uma assinatura, você precisa conceder ao Android Device Policy permissão para publicar no seu tópico.

1. Ativar a API Pub/Sub para seu projeto

Para instruções sobre como ativar a API Pub/Sub, consulte o guia de início rápido do console. Selecione o mesmo projeto em que a API Android Management está ativada.

2. Criar um tópico

Depois de ativar a API, você precisará criar um tópico em que o Android Device Policy possa publicar notificações. Há duas maneiras de criar um tópico:

a. Manualmente, no Console do Google Cloud Platform.
b. Usando a API Pub/Sub (consulte criar topicmethod).

Depois de criar um tópico, anote o nome dele.

3. Crie uma assinatura

Uma assinatura captura o stream de mensagens publicadas sobre determinado tópico. Há duas maneiras de criar uma assinatura:

a. Manualmente, no Console do Google Cloud Platform.
b. Usando a API Pub/Sub (consulte o método de criação de assinatura).

4. Conceder ao Android Device Policy o direito de publicar no tópico

Você precisa conceder permissão a android-cloud-policy@system.gserviceaccount.com para publicar no tópico. Há duas maneiras de conceder direitos de publicação:

a. manualmente no Console do Google Cloud Platform;

  • Adicione android-cloud-policy@system.gserviceaccount.com como membro ao tópico.
  • Clique em Selecionar um papel > Pub/Sub > Editor do Pub/Sub.

b. Usando a API Pub/Sub (consulte Controle de acesso pela API IAM do Google Cloud Pub/Sub)

  • serviceAccount:android-cloud-policy@system.gserviceaccount.com foi adicionado a members.
  • Defina role como roles/pubsub.publisher.

5. Atualize o Enterprise para oferecer suporte às notificações

Para conectar notificações sobre uma empresa ao tópico que você criou, chame enterprises.patch e especifique os seguintes parâmetros:

  • pubsubTopic: o nome do tópico do Pub/Sub no formato projects/{project}/topics/{topic}.
  • enabledNotificationTypes: inclui todos os tipos de notificação que você quer receber. Escolha entre ENROLLMENT, STATUS_REPORT e COMMAND.

6. Usar a API Pub/Sub para receber notificações

Uma inscrição pode usar o mecanismo de push ou pull para a entrega de mensagens. Diretrizes e instruções sobre como receber notificações por meio desses dois mecanismos estão disponíveis no Guia do assinante do Pub/Sub.

Formato de mensagem

As mensagens assumem a forma de uma PubsubMessage. O campo attributes da mensagem contém um atributo com a chave notificationType e o valor definido como o tipo de notificação que acionou a mensagem (por exemplo, ENROLLMENT). O campo data da mensagem contém a representação JSON do recurso que foi atualizado, codificada como uma string UTF-8. As notificações e os tipos de recursos correspondentes são os seguintes:

  • As notificações COMMAND usam o tipo de recurso Operação.
  • As notificações USAGE_LOGS usam o tipo de recurso UsageLogEvent.
  • As notificações ENROLLMENT e STATUS_REPORT usam o tipo de recurso Dispositivo.

Ao definir o pubsubTopic em uma empresa, uma mensagem inicial é publicada com notificationType definido como test. Essa mensagem é enviada para verificar se o Android Device Policy tem a permissão de publicação no tópico e precisa ser ignorada.