Ключи push для мобильного SDK: Firebase (FCM) и APNs

Обновлено: 9 октября 2026 · 7 мин чтения

Clomni отправляет push-уведомления Вашими ключами: service account Firebase для Android и ключ APNs для iOS. Оба загружаются в «Settings › Workspace settings › Inboxes» › Ваш канал › колонка настроек › «Push» (или на шаге 4 мастера).

Шаги

  1. 1

    Android: получите service account JSON

    Панели нужен service account JSON, а не google-services.json. google-services.json кладётся в приложение и только называет проект. Service account JSON является секретным ключом, который позволяет серверу Clomni отправлять push через Ваш проект.

    1. В Firebase console откройте проект, к которому относится google-services.json Вашего приложения. Push работает, только если оба файла из одного проекта.
    2. Шестерёнка рядом с «Project Overview» › Project settings › Service accounts.
    3. В «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.

  2. 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. 3

    iOS: создайте ключ APNs

    Нужна роль Account Holder или Admin в Apple Developer Program.

    1. developer.apple.com/account › Certificates, Identifiers & Profiles › Keys › +.
    2. Назовите ключ, отметьте «Apple Push Notifications service (APNs)», «Configure».
    3. Выберите Environment: Sandbox & Production. Key Restriction: «Team Scoped (All Topics)». «Save» › «Continue» › «Register».

    Выбор среды важен. Ключ только для Sandbox работает в сборках, запущенных из Xcode, и не работает в TestFlight и App Store. Ключ только для Production наоборот. В обоих случаях APNs отвечает BadEnvironmentKeyInToken, и push не доходит. Ключи, созданные до появления выбора среды у Apple, работают в обеих.

  4. 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.
  5. 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. 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. 7

    Полное руководство

Документ