«
»
AndroidGoogleWEBWEB - PHP

Отправить PUSH-уведомление с помощью Google FCM и PHP

Отправить PUSH-уведомление с помощью Google FCM и PHP

Как часто вы получаете уведомления «ваш друг отметил вас в сообщении», «ваш друг здесь»? Это гарантирует, что вы никогда не пропустите ничего, независимо от того, насколько вы заняты, и как разработчик, как часто вы хотите, чтобы у вашего приложения была одна и та же возможность вовлекать пользователей обратно в ваше приложение?

Сегодня я расскажу о том, как отправлять кросс-платформенные (Android / iOS) push-уведомления с помощью облачных сообщений Firebase (Google FCM) в PHP .

Что такое Push-уведомление?

Push-уведомление в основном представляет собой сообщение, которое появляется на смартфоне пользователя. Оно может быть отправлено издателями приложений в любое время, пользователи не должны быть в приложении или использовать свои устройства для их получения. Пуш-уведомление может быть о чем угодно, например, оно может показывать последние спортивные результаты, побуждать пользователя к действию, например, скачивать купон, или сообщать пользователю о событии, например, о распродаже. Оно помогает пользователю зайти в приложение и повысить заинтересованность.

Отправить PUSH-уведомление с помощью Google FCM и PHP

Google Cloud Messaging

Некоторое время назад Google объявил о (Google Cloud Messaging) бесплатная услуга, которая позволяет разработчикам отправлять сообщения между серверами и клиентскими приложениями, которые состояли из передачи сообщений от серверов к клиентским приложениям и передачи сообщений от клиентских приложений на серверы (согласно Документации Google). Что помогло издателям отправлять уведомления множеству пользователей или массовой аудитории.

Вот как работал GCM:

  1. Устройство Android отправляет идентификатор отправителя, идентификатор приложения на сервер GCM для регистрации.
  2. После успешной регистрации сервер GCM выдает регистрационный идентификатор на устройство.
  3. После получения регистрационного идентификатора устройство отправит регистрационный идентификатор на наш сервер.
  4. Наш сервер будет хранить регистрационный идентификатор в базе данных для дальнейшего использования.
  5. Всякий раз, когда требуется push-уведомление, наш сервер отправляет сообщение на сервер GCM вместе с идентификатором регистрации устройства (который хранится ранее в базе данных).
  6. Сервер GCM доставляет это сообщение соответствующему мобильному устройству, используя идентификатор регистрации устройства.

Google FCM

Но не так давно, после приобретения Firebase в 2014 году, Google анонсировала Firebase Cloud Messaging (FCM) для отправки различных уведомлений и сообщений через различные мобильные ОС (даже iOS) и Интернет. Так зачем обновляться до FCM?

Несмотря на то, что FCM использует базовую инфраструктуру GCM, существуют различные причины для перехода на FCM.

  • СООБЩЕНИЕ НА ОСНОВЕ ТЕМЫ: В отличие от GCM, не было необходимости запускать логику публикации уведомлений под массивным циклом токенов устройств, которые мы ранее хранили для отправки уведомлений. Теперь устройства были зарегистрированы под определенной темой, например, (ESPN_SPORTS), и нам просто нужно было упомянуть эту тему, а остальное она делала от маршрутизации до доставки сообщений на все устройства, хранящиеся в этой теме.
  • Не было необходимости писать собственную логику повторных попыток регистрации или подписки.

Чтобы перейти с GCM SDK на FCM SDK, см. Руководства по миграции приложений Android и iOS .

Таким образом, после краткого обзора GCM и нового FCM, мы можем использовать API FCM с PHP для отправки push-уведомлений на наши устройства.

Кодируем

Перед кодированием нам понадобится ключ сервера, который мы можем получить, выполнив следующие действия:

  1. Войдите / зарегистрируйтесь в своей учетной записи в firebase.
  2. Затем нажмите на значок шестеренки слева вверху, а затем нажмите «Настройки проекта».Отправить PUSH-уведомление с помощью Google FCM и PHP
  3. Кроме того, зарегистрируйте сертификаты APN в «конфигурации приложения ios», чтобы отправлять уведомления на устройства iOS.

Мы разработаем веб-интерфейс для отправки push-уведомлений на устройства Android и iOS. Перед этим нам нужно будет установить стабильное приложение на телефоне.

Таким образом, в основном у нас будет 2 PHP-файла, которые подписывают устройства на заданную тему:

  1. Файл, который подписывается на устройства. SDK должны быть настроены для вызова URL-адреса, указывающего файл при открытии приложения, предоставляющего стиль DEVICE_TOKEN в стиле Firebase. Устройства будут зарегистрированы с их токенами устройства.
  2. Еще один файл для отправки уведомления.
<?php if(!isset($_GET['device_token'])){ echo "device token needed!!!"; exit; } $server_key = 'AAAATl2-Vzw:APA91bFIi_TgoBmJEVJXrowhvMq0-uRurX977-XZ9Cl3yOsAGweMSpVfUJsSnAq5c5kmbe7V6hUrFkejXyAlbv32F92WGZzJ_u-vyO1Pw4wUm7ww4Izf21eZ4G0qxXpX37O6CaERwQ0T'; $url = 'https://iid.googleapis.com/iid/v1:batchAdd'; //$url = "https://iid.googleapis.com/iid/v1:batchRemove"; $fields['registration_tokens'] = array($_GET['device_token']); $fields['to'] = '/topics/my-app'; $headers = array( 'Content-Type:application/json', 'Authorization:key='.$server_key ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $result = curl_exec($ch); curl_close($ch); var_dump($result);exit; ?>

Пример файла подписки на устройство (device_registration.php).

POST-запрос рекомендуется при настройке SDK по этому URL. Убедитесь, что у вас установлена ​​нужная тема, так как она должна соответствовать теме, которую вы определили на странице, где вы отправляете уведомления.

Настройка SDK

 IOS

Прежде всего, нам нужно определить URL-адрес регистра устройства следующим образом:

Отправить PUSH-уведомление с помощью Google FCM и PHP

Пример настройки SDK.
Отправить PUSH-уведомление с помощью Google FCM и PHP

 Android

Аналогично настройке iOS, нам нужно определить URL регистрации для Android следующим образом:

Отправить PUSH-уведомление с помощью Google FCM и PHP

Пример настройки SDK.

Отправить PUSH-уведомление с помощью Google FCM и PHP

Приложения теперь начнут регистрироваться или подписываться на темы, определенные при каждом открытии. Хорошо,
теперь давайте перейдем к отправке детали. у нас есть простая форма для настройки, куда мы можем отправить уведомление.

Отправить PUSH-уведомление с помощью Google FCM и PHP

На сервере эта форма запускает следующий код при отправке.

<?php $payload = array( 'to'=>'/topics/my-app', 'priority'=>'high', "mutable_content"=>true, "notification"=>array( "title"=> $_POST['title'], "body"=> $_POST['summary'] ), 'data'=>array( 'action'=>'models', 'model_id'=>'2701', ) ); $headers = array( 'Authorization:key='AAAATl2-Vzw:APA91bFIi_TgoBmJEVJXrowhvMq0-uRurX977-XZ9Cl3yOsAGweMSpVfUJsSnAq5c5kmbe7V6hUrFkejXyAlbv32F92WGZzJ_u-vyO1Pw4wUm7ww4Izf21eZ4G0qxXpX37O6CaERwQ0T, 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' ); curl_setopt( $ch,CURLOPT_POST, true ); curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true ); curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $payload ) ); $result = curl_exec($ch ); curl_close( $ch ); var_dump($result);exit; ?>

и это все.

Точно так же я получил уведомление с желаемым заголовком и резюме. Заголовок и тело определяют, что пользователи видят в реальных уведомлениях. Вы можете отправить массив данных соответственно для глубокой ссылки приложения на определенную страницу. Например, здесь я отправляю идентификатор модели, поэтому, когда пользователь нажимает на уведомление, он перенаправляет вас на страницу моделей.

Отправить PUSH-уведомление с помощью Google FCM и PHP

Кроме того, вы можете отфильтровать свою аудиторию уведомлений, например, по устройству, географически и т.д., Просто зарегистрировав свое устройство в соответствии с соответствующей темой. Воспользуйтесь гибкостью темы, вы сможете получить желаемый результат. Как вы можете видеть, с помощью Google FCM стало действительно легко отправлять push-уведомления на различные платформы.

Отправить PUSH-уведомление с помощью Google FCM и PHP

Источник записи: https://thedebuggers.com

Связанные записи
GoogleGoogle Chrome

Google Chrome - Что нового в DevTools (Chrome 84)

GooglePageSpeed Insights

Как настроить отложенную загрузку для рекламных блоков Google AdSense?

GooglePageSpeed Insights

6 способов повысить скорость загрузки страниц сайта AdSense »WebNots

GoogleGoogle AnalyticsPageSpeed Insights

Google Tag Manager vs Page Speed | Диспетчер тегов Google и скорость страницы: влияние и способы улучшения