FCM с PHP не показывает additonalData в консоли - PullRequest
0 голосов
/ 10 сентября 2018

Я отправляю push-уведомления с помощью php, я понимаю, что push-уведомление приходит на телефон, но не может отправить дополнительные данные, которые я добавляю в скрипт, например, страницу и т. Д.

<?php

$url = "https://fcm.googleapis.com/fcm/send";
$token = 'device_id here';
$serverKey = 'AIzaSxxxbAGLyxxxx';
$title = "New Message";
$body = 'Hello there';
$notification = array('title' =>$title , 'message' => $body,'priority'=>'high','badge'=>'1','notId'=>''.time(), 'id' => '33','page' => 'news');
$arrayToSend = array('to' => $token, 'notification' => $notification);
$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);

?>

1 Ответ

0 голосов
/ 10 сентября 2018

Вы пытаетесь добавить пользовательские поля данных в сообщение Notification. Notification сообщения разрешают только определенные поля. Если вы хотите отправить пользовательские данные, вам нужно сделать сообщение Data или Notification с данными.

Из документов FCM комбинационное сообщение Notification с данными для Android может выглядеть следующим образом:

{
  "to":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
  "notification":{
      "title":"New Message",
      "body":"Hello there"
    },
    "data" : {
      "notId" : 201801,
      "id" : 33,
      "page" : "news",
    }
}

Внести следующие изменения в структуру сообщения:

$notification = array('title' =>$title , 'message' => $body);
$data = array('notId'=>''.time(), 'id' => '33','page' => 'news');
$arrayToSend = array('to' => $token, 'notification' => $notification, 'data' => $data);

Вам нужно будет изменить код Android, чтобы вместить поле data и соответствующим образом проанализировать данные.

Пожалуйста, внимательно прочитайте документацию FCM, чтобы увидеть, какие последствия это изменение может оказать на ваш проект. Самое главное, как data сообщения обрабатываются, когда ваше приложение находится в фоновом режиме!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...