Хобрук: Ваш путь к мастерству в программировании

Реализация на стороне сервера push-уведомлений

Недавно я интегрировал FCM в последнюю версию своего приложения, но моя предыдущая версия приложения использовала GCM. Любые идеи о том, нужно ли нам отделять запись фонового cron для GCM и FCM?

Моя предыдущая версия MY App 4.0 использовала GCM, а текущая версия My App 4.1 интегрировала FCM. Я хочу отправить push-уведомление как для версии, так и для пользователей. Так нужно ли нам писать серверную программу для GCM и FCM, верно? Любые идеи об этой интеграции.

Серверный API FCM: https://fcm.googleapis.com/fcm/send Сервер GCM Сторонний API: https://android.googleapis.com/gcm/send

Любые другие возможности, мы можем отправить уведомление через стороннюю программу FCM Server? или отдельно нужно писать программу для GCM и FCM?.

Пример кода для FCM в PHP

<?php

function sendFCM($mess,$id) {
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array (
        'to' => $id,
        'notification' => array (
                "body" => $mess,
                "title" => "Title",
                "icon" => "myicon"
        )
);
$fields = json_encode ( $fields );
$headers = array (
        'Authorization: key=' . "AIzaSyA9vpL9OuX6moOYw-4n3YTSXpoSGQVGnyM",
        'Content-Type: application/json'
);

$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_POSTFIELDS, $fields );

$result = curl_exec ( $ch );
curl_close ( $ch );
}

?>

Ответы:


1

FCM по-прежнему совместим с GCM, поскольку это его ядро. Поэтому переключение на конечную точку FCM (https://fcm.googleapis.com/fcm/send ) при отправке уведомления должно по-прежнему работать для версий вашего приложения с GCM. Нет необходимости писать отдельные программы.

20.02.2017

2

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

                $notification_send ="Message to be sent";

                $server_key = '****************************';//Authorization Key
                $client = new Client();
                $client->setApiKey($server_key);
                $client->injectGuzzleHttpClient(new \GuzzleHttp\Client());
                $message = new Message();
                $message->setPriority('high');
                $message->addRecipient(new Topic('test'));
                $message
                    ->setNotification(new Notification('Reislivsmessen', $notification_send ))
                    ->setData(['key' => 'value']);

                $response = $client->send($message);

Вы должны создать тему, здесь это "тест".

Я надеюсь, что это сработает и для вас.

20.02.2017
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..