Топики
Чтобы отправлять уведомления централизованно во множество эндпоинтов, используйте топики. Также с помощью топиков можно группировать сообщения по категориям. Например, уведомления службы безопасности, рекламные уведомления и так далее. Для группировки сообщений создайте разные топики для каждой категории.
Топики позволяют выполнять множественную отправку сообщений всем эндпоинтам или телефонным номерам, которые подписаны на этот топик. У топика также есть свой уникальный идентификатор — ARN.
Для добавления эндпоинтов в топик используется подписка. Подписка связывает топик с одним эндпоинтом, который был добавлен в канал уведомлений. Телефонные номера не требуется предварительно добавлять в канал уведомлений. Чтобы отправлять сообщения в разные эндпоинты, подпишите эти эндпоинты на топик.
Порядок настройки топиков:
- В сервисе CNS создайте каналы уведомлений.
- Добавьте в каналы уведомлений эндпоинты (для SMS эндпоинт можно не добавлять).
- Создайте топик и включите логирование, чтобы отслеживать отправку уведомлений.
- Добавьте в топик подписку, в которой укажите идентификатор (ARN) созданного ранее эндпоинта или номер телефона для SMS.
Порядок отправки уведомлений:
-
Уведомление отправляется на ARN топика через SDK или API с помощью метода
Publish
.Также отправить уведомление можно через консоль управления
.Формат уведомления в JSON:
{ "default": "<Текст_по_умолчанию>", "sms": "<Текст_уведомления_для_sms>", "WEB": "<Текст_уведомления_для_браузера>", "APNS": { "aps": { "alert": { "title": "Заголовок_уведомления", "body": "Текст_уведомления" } } }, "GCM": { "notification": { "title": "Заголовок_уведомления", "body": "Текст_уведомления" } }, "HMS": { "notification": { "title": "Заголовок_уведомления", "body": "<Текст_уведомления>" } }, "RUSTORE": { "notification": { "title": "Заголовок_уведомления", "body": "<Текст_уведомления>" } } }
Можно ввести единый текст для всех каналов или разные тексты, в зависимости от типа канала. Если для какого-либо канала уведомление не указано, будет отправлено уведомление по умолчанию.
-
Сервис CNS проверяет корректность запроса.
-
Если запрос правильный, прошел авторизацию и аутентификацию, уведомление отправляется всем подписчикам топика.
-
Если в запросе ошибка (например, исчерпаны лимиты), информация об этом появится в логах в Cloud Logging. Запись логов включается при создании топика.