Как послать push уведомление на android

Недавно коснулся отправки push уведомлений на андроид, а именно серверной стороны. Ранее сервис уведомлений гугла назывался GCM, но теперь, с сентября 2016 года он переехал на Firebase, и теперь имеет имя Firebase Cloud Messagging (FCM). GCM теперь deprecated.

Как же отправить push уведомление на android со своего сервера ?

Ответ — очень просто!

Сначала немного теории о том как вообще происходит отправка и почему push приходит на конкретный телефон. При каждой установке приложения на мобильный девайс гененрируется уникальный идентификатор установки — Registration Id. Он связывает конкретный девайс с конкретным приложением. Для того чтобы послать уведомление на определенный телефон нужно сделать POST запрос на сервер firebase, в котором передать этот registration id и тело сообщения. Можно указывать несколько registration ids, вплоть до 1000, тогда push придет на все девайсы.

https://firebase.google.com/docs/cloud-messaging/  — документация.

Дальше немного практики, приведу небольшой кусок кода который отправляет уведомление. Я делаю это с помощью Meteor, и так как это просто POST запрос, можно сделать его с помощью любого языка или фрэймворка, суть от этого не поменяется.

Основная часть — HTTP.call(), этот метод делает POST запрос на сервер fcm и передает туда необходимые параметры для отправки push notification в формате json.

headers —  заголовки, в Authorization необходимо указать ключ полученный в FCM.

data — различные параметры уведомления. Заголовок, сообщение, какой звук использовать и тд. Самый главный параметр — registration_ids, это массив регистрационных id пользователей. Именно массив, так как пользователь может пользоваться приложением на нескольких девайсах и хорошо бы отправлять «пуши» на все.

Также можно почитать: