Реализация 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);
Вам нужно создать тему, вот это "тест".
Я надеюсь, что это сработает и для вас.