Создать канал push-уведомлений
В Cloud Notification Service сообщения конечным пользователям отправляются через каналы уведомлений.
Чтобы создать канал:
-
В консоли управления
выберите каталог, в котором вы хотите создать канал уведомлений. -
В списке сервисов выберите Cloud Notification Service.
-
Нажмите Создать канал уведомлений.
-
На вкладке Мобильные Push-уведомления выберите платформу для отправки:
Apple iOS
— для iOS-устройств.Google Android
— для Android-устройств c установленными сервисами Google Play.Huawei Android
— для Android-устройств c установленными сервисами Huawei.
-
В зависимости от платформы задайте параметры аутентификации:
Apple iOS
-
Выберите Метод аутентификации:
Токен
илиСертификат
.Вы можете аутентифицироваться на мобильной платформе APNs с помощью токена или сертификата:
-
Для аутентификации с помощью токена вам понадобятся следующие данные:
-
Ключ подписи — файл с ключом подписи, которым будет заверяться токен аутентификации.
Создайте и скачайте ключ подписи в своей учетной записи разработчика Apple: Certificates, Identifiers & Profiles → Keys →
. Скачать файл ключа можно только один раз. -
Идентификатор ключа (Key ID) — узнайте идентификатор в учетной записи разработчика Apple: Certificates, Identifiers & Profiles → Keys. Убедитесь, что идентификатор соответствует ключу подписи, который вы загрузили на предыдущем шаге. Должен содержать 10 символов.
-
Идентификатор разработчика (Team ID) — указан в правом верхнем углу вашей учетной записи разработчика Apple. Должен содержать 10 символов: только цифры и буквы латинского алфавита.
-
Идентификатор приложения (Bundle ID) — узнайте Bundle ID
в учетной записи разработчика Apple: Certificates, Identifiers & Profiles → Identifiers или в приложении Xcode: Target → General → Identity. Может содержать только цифры, буквы латинского алфавита, дефисы и точки.
Подробнее о токене см. в документации Apple
. -
-
Для аутентификации с помощью сертификата понадобятся следующие данные:
- Сертификат — файл сертификата SSL в формате
.pem
. - Закрытый ключ сертификата — файл ключа в формате
.pem
.
Подробнее о сертификате см. в документации Apple
.Чтобы сохранить сертификат и закрытый ключ в отдельных файлах формата
.pem
, вы можете воспользоваться утилитой openssl в Linux:openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
- Сертификат — файл сертификата SSL в формате
Аутентификация с токеном является предпочтительной, как более современная, быстрая и безопасная.
-
-
Выберите Окружение:
Development
илиProduction
. Для тестирования приложения используйтеDevelopment
.
Google Android
Укажите, какая Версия FCM API будет использоваться:
HTTP v1
илиLegacy
.Вы можете аутентифицироваться на мобильной платформе FCM с помощью HTTP v1 API или Legacy API:
- Для аутентификации с помощью HTTP v1 API вам понадобится Ключ сервисного аккаунта Google Cloud в формате JSON. С помощью ключа генерируются временные токены OAuth 2.0 для аутентификации запросов в FCM HTTP v1 API. Можно получить в консоли управления Google Cloud.
- Для аутентификации с помощью Legacy API вам понадобится API-ключ (server key). Можно получить в консоли управления Firebase.
Примечание
Версия HTTP v1 API является предпочтительной, так как с июня 2024 года Legacy API не будет поддерживаться FCM
.Подробнее см. в документации Firebase
.Huawei Android
Вы можете аутентифицироваться на мобильной платформе HMS с помощью следующих параметров:
- Идентификатор ключа.
- API-ключ.
Подробнее см. в документации HMS
. -
-
Введите Имя канала уведомлений. Должно быть уникальным в облаке. Может содержать строчные и заглавные буквы латинского алфавита, цифры, подчеркивания, дефисы и точки. Допустимая длина — от 1 до 256 символов. Рекомендуется для каналов APNs указывать в имени идентификатор приложения (Bundle ID), для FCM и HMS — полное название пакета приложения (Package name).
-
(опционально) Нажмите
Добавить описание и введите описание для канала уведомлений. -
Нажмите Создать.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws sns create-platform-application \ --name <имя_канала> \ --platform <тип_платформы> \ --attributes <параметр1>=<значение1>, ... <параметрN>=<значениеN>
Где:
-
--name
— имя канала уведомлений, задается пользователем. Должно быть уникальным в облаке. Может содержать строчные и заглавные буквы латинского алфавита, цифры, подчеркивания, дефисы и точки. Допустимая длина — от 1 до 256 символов. Рекомендуется для каналов APNs указывать в имени идентификатор приложения (Bundle ID), для FCM и HMS — полное название пакета приложения (Package name). -
--platform
— тип мобильной платформы:APNS
иAPNS_SANDBOX
— Apple Push Notification service (APNs). Для тестирования приложения используйтеAPNS_SANDBOX
.GCM
— Firebase Cloud Messaging (FCM).HMS
— Huawei Mobile Services (HMS).
-
--attributes
— параметры аутентификации на мобильной платформе в формате<параметр>=<значение>
через запятую. Значения зависят от типа платформы:-
APNs:
-
Аутентификация с токеном:
PlatformPrincipal
— путь к файлу с ключом подписи, полученный в Apple.PlatformCredential
— идентификатор ключа подписи (Key ID).ApplePlatformTeamID
— идентификатор разработчика (Team ID).ApplePlatformBundleID
— идентификатор приложения (Bundle ID).
-
Аутентификация с сертификатом:
-
PlatformPrincipal
— SSL-сертификат в формате.pem
. -
PlatformCredential
— закрытый ключ сертификата в формате.pem
.Чтобы сохранить сертификат и закрытый ключ в отдельных файлах формата
.pem
, вы можете воспользоваться утилитой openssl в Linux:openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
-
Аутентификация с токеном является предпочтительной, как более современная.
-
-
FCM:
PlatformCredential
— ключ сервисного аккаунта Google Cloud в формате JSON для аутентификации с помощью HTTP v1 API или API-ключ (server key) для аутентификации с помощью Legacy API.Рекомендуется экранировать содержимое файла с помощью команды
jq @json <<< cat private_key.json
, так как AWS CLI принимает данный параметр в строковом формате.Версия HTTP v1 API является предпочтительной, так как с июня 2024 года Legacy API не будет поддерживаться FCM
. -
HMS:
PlatformPrincipal
— идентификатор ключа.PlatformCredential
— API-ключ.
-
В результате вы получите идентификатор (ARN) канала уведомлений. Сохраните его для использования в дальнейшем.
Подробнее о команде
aws sns create-platform-application
см. в документации AWS . -
-
Если у вас еще нет AWS SDK для Python (boto3), установите и настройте его.
-
Чтобы создать канал push-уведомлений, используйте следующий код:
response = client.create_platform_application( Name="<имя_канала>", Platform="<тип_платформы>", Attributes= { "<параметр1>": "<значение1>", ... "<параметрN>": "<значениеN>" } ) print ("Platform application ARN:", response['PlatformApplicationArn'])
Где:
-
Name
— имя канала уведомлений, задается пользователем. Должно быть уникальным в облаке. Может содержать строчные и заглавные буквы латинского алфавита, цифры, подчеркивания, дефисы и точки. Допустимая длина — от 1 до 256 символов. Рекомендуется для каналов APNs указывать в имени идентификатор приложения (Bundle ID), для FCM и HMS — полное название пакета приложения (Package name). -
Platform
— тип мобильной платформы:APNS
иAPNS_SANDBOX
— Apple Push Notification service (APNs). Для тестирования приложения используйтеAPNS_SANDBOX
.GCM
— Firebase Cloud Messaging (FCM).HMS
— Huawei Mobile Services (HMS).
-
Attributes
— параметры аутентификации на мобильной платформе в формате"<параметр>": "<значение>"
через запятую. Значения зависят от типа платформы:-
APNs:
-
Аутентификация с токеном:
PlatformPrincipal
— путь к файлу с ключом подписи токена, полученный в Apple.PlatformCredential
— идентификатор ключа подписи (Key ID).ApplePlatformTeamID
— идентификатор разработчика (Team ID).ApplePlatformBundleID
— идентификатор приложения (Bundle ID).
-
Аутентификация с сертификатом:
-
PlatformPrincipal
— SSL-сертификат в формате.pem
. -
PlatformCredential
— закрытый ключ сертификата в формате.pem
.Чтобы сохранить сертификат и закрытый ключ в отдельных файлах формата
.pem
, вы можете воспользоваться утилитой openssl в Linux:openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
-
Аутентификация с токеном является предпочтительной, как более современная.
-
-
FCM:
PlatformCredential
— ключ сервисного аккаунта Google Cloud в формате JSON для аутентификации с помощью HTTP v1 API или API-ключ (server key) для аутентификации с помощью Legacy API.Версия HTTP v1 API является предпочтительной, так как с июня 2024 года Legacy API не будет поддерживаться FCM
. -
HMS:
PlatformPrincipal
— идентификатор ключа.PlatformCredential
— API-ключ.
-
В результате вы получите идентификатор (ARN) канала уведомлений.
-
-
Если у вас еще нет AWS SDK для PHP, установите и настройте его.
-
Чтобы создать канал push-уведомлений, используйте следующий код:
$response = $client->createPlatformApplication( [ 'Name' => '<имя_канала>', 'Platform' => '<тип_платформы>', 'Attributes' => [ '<параметр1>' => '<значение1>', ... '<параметрN>' => '<значениеN>' ], ] ); print($response->get('PlatformApplicationArn'));
Где:
-
Name
— имя канала уведомлений, задается пользователем. Должно быть уникальным в облаке. Может содержать строчные и заглавные буквы латинского алфавита, цифры, подчеркивания, дефисы и точки. Допустимая длина — от 1 до 256 символов. Рекомендуется для каналов APNs указывать в имени идентификатор приложения (Bundle ID), для FCM и HMS — полное название пакета приложения (Package name). -
Platform
— тип мобильной платформы:APNS
иAPNS_SANDBOX
— Apple Push Notification service (APNs). Для тестирования приложения используйтеAPNS_SANDBOX
.GCM
— Firebase Cloud Messaging (FCM).HMS
— Huawei Mobile Services (HMS).
-
Attributes
— параметры аутентификации на мобильной платформе в формате'<параметр1>' => '<значение1>'
через запятую. Значения зависят от типа платформы:-
APNs:
-
Аутентификация с токеном:
PlatformPrincipal
— путь к файлу с ключом подписи токена, полученный в Apple.PlatformCredential
— идентификатор ключа подписи (Key ID).ApplePlatformTeamID
— идентификатор разработчика (Team ID).ApplePlatformBundleID
— идентификатор приложения (Bundle ID).
-
Аутентификация с сертификатом:
-
PlatformPrincipal
— SSL-сертификат в формате.pem
. -
PlatformCredential
— закрытый ключ сертификата в формате.pem
.Чтобы сохранить сертификат и закрытый ключ в отдельных файлах формата
.pem
, вы можете воспользоваться утилитой openssl в Linux:openssl pkcs12 -in Certificates.p12 -nokeys -nodes -out certificate.pem openssl pkcs12 -in Certificates.p12 -nocerts -nodes -out privatekey.pem
-
Аутентификация с токеном — более современный и безопасный метод.
-
-
FCM:
PlatformCredential
— ключ сервисного аккаунта Google Cloud в формате JSON для аутентификации с помощью HTTP v1 API или API-ключ (server key) для аутентификации с помощью Legacy API.Используйте HTTP v1 API, так как с июля 2024 года FCM legacy API не поддерживается
. -
HMS:
PlatformPrincipal
— идентификатор ключа.PlatformCredential
— API-ключ.
-
В результате вы получите идентификатор (ARN) канала уведомлений.
-
Воспользуйтесь методом HTTP API create для ресурса PlatformApplications сервиса Yandex Cloud Notification Service.
Создание канала уведомлений может занять некоторое время.