Включить push-уведомления EMM

В этом руководстве предполагается, что у вас уже есть созданное вручную ESA, и показано, как настроить его для использования с push-уведомлениями EMM. Задачи выполняются владельцем ESA (вы, как поставщик решения EMM, или ваш клиент) с помощью консоли Google API :

1. Включите доступ к Google Cloud Pub/Sub API в консоли Google API для облачного проекта.

2. Предоставьте разрешения редактора ESA.

3. Настройте проект для получения уведомлений EMM.

4. Отправьте тестовое уведомление EMM.

5. Подписаться на тему.

Эти шаги более подробно описаны в разделах ниже.

1. Включите доступ к API Cloud Pub/Sub для проекта.

Чтобы активировать API Cloud Pub/Sub для вашего проекта:

  1. В консоли API откройте библиотеку API . Выберите проект (или при необходимости создайте новый). В библиотеке API перечислены все доступные API, сгруппированные по семействам продуктов и популярности.
  2. В разделе Google Cloud API найдите Cloud Pub/Sub API . (Если его нет в списке, воспользуйтесь поиском, чтобы найти его.)
  3. Выберите Cloud Pub/Sub API и нажмите «Включить» .

После включения API в меню «API и службы» нажмите «Панель мониторинга» , чтобы просмотреть список всех включенных API. Прежде чем API Cloud Pub/Sub можно будет использовать для сообщений вашему клиенту, вы должны предоставить разрешения редактора сервисному аккаунту этого клиента (его ESA).

2. Предоставьте разрешения редактора ESA.

В консоли API предоставьте необходимые разрешения:

  1. В меню «API и службы» нажмите «Учетные данные» . Вы должны увидеть ESA вашего клиента в разделе «Ключи учетной записи службы».
  2. Нажмите «Управление учетными записями служб» , чтобы открыть все учетные записи служб, связанные с проектом.
  3. В списке выберите соответствующую учетную запись ESA и нажмите «Разрешения» .
  4. В поле Добавить участников :
    • Введите адрес электронной почты, связанный с ESA.
    • В раскрывающемся меню выберите «Редактор» (рядом с полем ввода).
  5. Нажмите «Добавить» , чтобы сохранить разрешения.

3. Настройте проект для получения уведомлений EMM.

Если API Cloud Pub/Sub включен, а ESA настроен с разрешениями редактора, вы можете настроить проект для получения уведомлений EMM, как описано в разделе Настройка push-уведомлений EMM . Вкратце, процесс установки включает в себя настройку конечной точки HTTP-сервера для отправки уведомлений подписчикам.

Уведомления EMM доставляются в виде protobufs (буферов протокола, простого формата для сериализации структурированных данных), упакованных в виде сообщений массива байтов с кодировкой byte64 внутри пакетов JSON. В своем коде вы должны проанализировать этот JSON и декодировать содержимое буфера протокола. Вот пример protobuf в кодировке URL-адреса base64 для уведомления NewPermissionsEvent :


CglDMTIzNDU2NzgQgM-C6sMqOooBChdhcHA6Y29tLmZha2VhcHAuZXhhbXBsZRIpYW5kcm9pZ
C5wZXJtaXNzaW9uLldSSVRFX0VYVEVSTkFMX1NUT1JBR0UaKGFuZHJvaWQucGVybWlzc2lvbi5SRUF
EX0VYVEVSTkFMX1NUT1JBR0UaGmFuZHJvaWQucGVybWlzc2lvbi5WSUJSQVRF

Он декодирует:


{
 enterprise_id: "C12345678"
 event_notification_sent_timestamp_millis: 1461316528000 # 1.33Ti;
    [as milliseconds]: 2016-04-22 10:15:28 +0100
 new_permissions_event: {
   product_id: "app:com.fakeapp.example"
   requested_permissions: [ "android.permission.WRITE_EXTERNAL_STORAGE" ]
   approved_permissions : [ "android.permission.READ_EXTERNAL_STORAGE",
    "android.permission.VIBRATE" ]
  }
}

Чтобы декодировать уведомления EMM в формате protobuf, вы можете использовать файл emm_pubsub.proto , расположенный в репозитории google/play-work на GitHub . При добавлении новых типов уведомлений этот файл расширяется новым типом, а пример кода обновляется. Эти изменения должны быть обратно совместимыми, но убедитесь, что ваш код корректно справляется с получением уведомлений неизвестных типов в дополнение к тем, которые перечислены в файле .proto.

4. Отправьте тестовое уведомление EMM.

Отправка тестового уведомления позволяет вам подтвердить, что вы успешно настроили свою систему для получения уведомлений EMM от Google Play, а также позволяет узнать название темы (то же имя темы используется для доставки всех уведомлений EMM Google Play).

Используя Play EMM API, вызовите метод sendTestPushNotification ресурса Enterprises.

Вызов этой операции приводит к отправке тестового уведомления EMM. Если уведомления EMM настроены правильно, API возвращает следующее:

    {
        topic_name: "/projects/project-name/topics/play-work-012345",
        message_id: "128976912439"
    }

5. Подписаться на тему

Используя пример кода, приведенный в разделе «Запуск тестового кода издателя» (в руководстве по настройке push-уведомлений EMM ), подпишитесь на указанную тему. Вы должны получить тестовое уведомление EMM вместе со всеми реальными уведомлениями, созданными с момента начала процесса настройки.