Вы можете отправлять и получать сообщения конечным пользователям с помощью chrome.gcm . Поскольку он построен на базе Firebase Cloud Messaging (FCM), он использует внешнюю службу, которую необходимо настроить. Это руководство проведет вас через все необходимые шаги, чтобы заставить его работать в вашем расширении.
Хотя chrome.gcm
все еще поддерживается , он был создан более десяти лет назад, до появления стандарта Push . В общем, всегда лучше использовать веб-стандарт, а не API-интерфейс конкретного расширения. Если у вас нет особой необходимости использовать chrome.gcm
, мы рекомендуем использовать Push .
Предварительные условия
Чтобы использовать chrome.gcm
, вам необходимо настроить учетную запись Firebase .
![Домашняя страница Firebase.com.](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_homepage.jpg?authuser=0000&hl=ru)
После создания учетной записи вам нужно будет открыть консоль Firebase и выбрать существующий проект для использования или создать новый для вашего расширения.
![Скриншот списка проектов на консоли Firebase.](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_console.jpg?authuser=0000&hl=ru)
Перейдите на страницу настроек Cloud Messaging.
![Снимок экрана: страница настроек Firebase Cloud Messaging.](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_settings.jpg?authuser=0000&hl=ru)
Если у вас уже есть учетная запись облачного обмена сообщениями в этом проекте, вы хотите скопировать указанный числовой идентификатор отправителя.
Если у вас не включен обмен облачными сообщениями, вам необходимо включить API Firebase Cloud Messaging для проекта внутри Google Cloud. На следующем изображении вы можете увидеть, где находится ссылка непосредственно на эту страницу в настройках Firebase.
![Снимок экрана: расположение ссылки для включения Firebase Messaging API в Google Cloud.](https://developer.chrome.google.cn/docs/extensions/how-to/integrate/chrome.gcm/firebase_enable_cloud.jpg?authuser=0000&hl=ru)
После включения вернитесь на страницу настроек Cloud Messaging и скопируйте идентификатор отправителя.
Настроить chrome.gcm
Теперь, когда у вас есть идентификатор отправителя из Firebase, вы можете настроить свое расширение для прослушивания сообщений. Для начала убедитесь, что вы добавили разрешение gcm
в manifest.json
вашего расширения.json.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Теперь у вас есть доступ к API chrome.gcm
. Вы можете зарегистрироваться для прослушивания push-сообщений, вызвав chrome.gcm.register
Слушайте сообщения
После того как расширение зарегистрировало ваш идентификатор отправителя, вам необходимо добавить код для обработки входящих сообщений.
Firebase без Firebase
Хотя chrome.gcm
всегда проходит через Firebase, Firebase можно настроить в качестве прокси-сервера для внешних поставщиков push-сообщений. Обычно поставщики явно указывают поддержку расширений Chrome, однако подойдет любой поставщик, который поддерживает push-уведомления Firebase Legacy. Если ваш провайдер указывает поддержку push-уведомлений Firebase Legacy, попробуйте это. Если у вас возникнут проблемы, служба поддержки провайдеров сможет разъяснить любые существующие ограничения.
О каналах и темах
chrome.gcm
использует устаревшие API-интерфейсы обмена сообщениями Firebase. Это важно, поскольку устаревший API не поддерживает каналы сообщений . Каждое отправленное сообщение будет отправлено каждому клиенту. Если добавочный номер пользователя интересует только часть сообщений, вам придется фильтровать себя.
Хотя Firebase начинается с бесплатной учетной записи, с вас будет взиматься плата, как только вы превысите определенный порог использования. Если вы планируете отправлять сообщения определенным группам, то фильтрация на стороне клиента может стоить дороже, чем оправдано. Эту проблему можно обойти, создав несколько проектов для репликации отдельных каналов (один проект и один идентификатор отправителя для каждого канала). Любое расширение может зарегистрировать несколько идентификаторов отправителей, вплоть до 100.
В качестве альтернативы, если вам нужна поддержка каналов или вы хотите использовать push-уведомления без использования Firebase, вы можете использовать Push API .