Ключи push для мобильного SDK: Firebase (FCM) и APNs
Обновлено: 9 октября 2026 · 7 мин чтения
Clomni отправляет push-уведомления Вашими ключами: service account Firebase для Android и ключ APNs для iOS. Оба загружаются в «Settings › Workspace settings › Inboxes» › Ваш канал › колонка настроек › «Push» (или на шаге 4 мастера).
Шаги
-
1
Android: получите service account JSON
Панели нужен service account JSON, а не
google-services.json.google-services.jsonкладётся в приложение и только называет проект. Service account JSON является секретным ключом, который позволяет серверу Clomni отправлять push через Ваш проект.- В Firebase console откройте проект, к которому относится
google-services.jsonВашего приложения. Push работает, только если оба файла из одного проекта. - Шестерёнка рядом с «Project Overview» › Project settings › Service accounts.
- В «Firebase Admin SDK» нажмите «Generate new private key», затем «Generate key». Скачается файл JSON.
Храните файл как пароль: не коммитьте и не отправляйте по почте. Если он утёк, удалите ключ в Google Cloud Console › IAM › Service accounts › Keys и загрузите новый. Firebase Cloud Messaging API (V1) в новых проектах включён. Если он выключен, «Test push» вернёт ошибку FCM: включите его в Google Cloud Console › APIs & Services.
- В Firebase console откройте проект, к которому относится
-
2
Android: загрузите в панель
«Push» › «Android · Firebase Cloud Messaging» › «Service account JSON file» › выберите файл › «Upload». На карточке появятся «Project» и дата «Uploaded». Если видите «The file has no project_id. Choose the service account file Firebase gave you.», выбран не тот файл: обычно это
google-services.json. «The file is not JSON» и «The file's private_key cannot be read» тоже означают неверный или повреждённый файл. -
3
iOS: создайте ключ APNs
Нужна роль Account Holder или Admin в Apple Developer Program.
- developer.apple.com/account › Certificates, Identifiers & Profiles › Keys › +.
- Назовите ключ, отметьте «Apple Push Notifications service (APNs)», «Configure».
- Выберите Environment: Sandbox & Production. Key Restriction: «Team Scoped (All Topics)». «Save» › «Continue» › «Register».
Выбор среды важен. Ключ только для Sandbox работает в сборках, запущенных из Xcode, и не работает в TestFlight и App Store. Ключ только для Production наоборот. В обоих случаях APNs отвечает
BadEnvironmentKeyInToken, и push не доходит. Ключи, созданные до появления выбора среды у Apple, работают в обеих. -
4
iOS: файл и идентификаторы
- «Download» на странице ключа: файл
.p8можно скачать только один раз. Если он потерян, создайте новый ключ. - Key ID: под именем ключа, 10 символов.
- Team ID: developer.apple.com/account › Membership details, 10 символов.
- Bundle ID: Bundle Identifier приложения (Xcode › target › Signing & Capabilities), например
com.example.app.
- «Download» на странице ключа: файл
-
5
iOS: загрузите в панель
«Push» › «iOS · Apple Push Notification service»: «.p8 file» (
AuthKey_XXXXXXXXXX.p8), «Key ID», «Team ID», «Bundle ID», затем «Upload». Панель проверяет формат (Key ID и Team ID состоят из 10 букв или цифр). Принял ли Apple ключ, видно при первом push: отправьте «Test push». -
6
Test push
Когда приложение запущено на телефоне с разрешёнными уведомлениями и передало токен, устройство появляется в списке «Test push»: платформа, модель, версия приложения и на iOS среда APNs (sandbox или production). Выберите устройство и нажмите «Send». Поля «Title» и «Text» необязательны: если они пусты, используются формат заголовка и пример текста, а «Preview» справа показывает, как будет выглядеть уведомление. Ответ является ответом самого FCM или APNs:
- «Sent»: уведомление в пути. Если на телефоне ничего нет, проверьте код push в приложении.
BadEnvironmentKeyInToken(APNs): ключ ограничен другой средой. Создайте и загрузите ключ Sandbox & Production.InvalidProviderToken(APNs): неверный Key ID или Team ID, или ключ отозван. Проверьте идентификаторы и загрузите ключ заново.DeviceTokenNotForTopic(APNs): Bundle ID в разделе Push не совпадает с приложением.BadDeviceToken(APNs): токен принадлежит другому приложению или уже недействителен. Переустановите приложение, откройте его, разрешите уведомления.SENDER_ID_MISMATCH(FCM): service account из другого проекта Firebase, чемgoogle-services.json. Загрузите service account проекта приложения.UNREGISTERED(FCM): приложение удалено с устройства или токен устарел. Откройте приложение снова, чтобы оно отправило новый токен.- «Not sent», ключа нет: для этой платформы ключ не загружен.
Clomni удаляет токены, которые APNs или FCM считают мёртвыми. «Last 7 days» в разделе Push считает отправленные, неудачные, удалённые токены и пропущенные (нет ключа) push. Если FCM или APNs отклоняет сам ключ, в «Overview» появляется предупреждение.
-
7
Полное руководство
- PDF: руководство Clomni Mobile SDK, на русском языке.
- Онлайн: Push keys (на английском).
- В панели: раздел «Guide» в колонке настроек канала.