push-уведомления не работают после перехода на fcm из gcm - PullRequest
0 голосов
/ 29 апреля 2019

Я перенес свой код из apns в fcm в соответствии с этими инструкциями https://developers.google.com/cloud-messaging/ios/ios-migrate-fcm. После обновления кода push-уведомления не работают.

Я создал сертификаты .p12 и .pem и проверяю оба файла с помощью моего предыдущего кода, связанного с apns. Сертификаты в порядке, и push-уведомления отправляются на клиентские устройства при использовании старого кода. но когда я проверяю эти сертификаты с помощью моего нового кода, связанного с fcm, push-уведомление не появляется. Я также изменил свои конечные точки сервера. Я попытался отправить уведомление с консоли Firebase, он также работает нормально.

Нужно ли что-то изменить на моем сервере?

1 Ответ

0 голосов
/ 29 апреля 2019

Наконец-то решили проблему. Мне нужно изменить мой код на стороне сервера. С FCM сертификат .pem больше не требуется на стороне сервера (скрипт php). То, что я сделал, это

$url = "https://fcm.googleapis.com/fcm/send";
$token = "";
$serverKey = '';
$title = "Title";
$body = "Body of the message";
$notification = array('title' =>$title , 'text' => $body, 'sound' => 'default', 'badge' => '1');
$arrayToSend = array('to' => $token, 'notification' => $notification,'priority'=>'high');
$json = json_encode($arrayToSend);
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key='. $serverKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST,

"POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
//Send the request
$response = curl_exec($ch);
//Close request
if ($response === FALSE) {
die('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);

источник: https://www.cumulations.com/blogs/87/how-to-send-push-notifications-in-php-to-ios-devices-using-fcm

...