Реализация Pushnotification Server

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

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

API-интерфейс сервера FCM: https://fcm.googleapis.com/fcm/send API-интерфейс сервера GCM: https://android.googleapis.com/gcm/send

Любые другие возможности можно отправить уведомление через программу на стороне сервера FCM? или отдельно нужно написать программу для 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. Нет необходимости писать отдельные программы.

Ответ 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);

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

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