Отправка push-уведомлений PHP

#javascript #php #firebase #firebase-cloud-messaging

#javascript #php #firebase #firebase-облако-обмен сообщениями

Вопрос:

У меня есть кнопка:

 <input type="text" id="userFCM" placeholder="Enter User fcmToken"><span><button onclick="sendNotification()">Send Notification</button>
  

Моя функция:

 function sendNotification() {
  var userFCM = document.getElementById('userFCM').value;
  var xmlhttp = new XMLHttpRequest();

  xmlhttp.open("GET", "sendNotification.php?q=" userFCM, true);
  xmlhttp.send();
}
  

Мой sendNotification.php:

 <?php

$q = $_REQUEST["q"];

function sendPushNotification($to = '', $data = array()) {
   $apiKey = 'api key';
   $fields = array( 'to' => $to, 'notification' => $data );

   $headers = array( 'Authorization: key='.$apiKey, 'Content-Type: application/json');

   $url = 'https://fcm.googleapis.com/fcm/send';

   $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_SSL_VERIFYPEER, false);
   curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($fields));
   $result = curl_exec($ch);
   curl_close($ch);
   return json_decode($result, true);
 }

 $data = array(
   'body' => 'test'
 );
 print_r(sendPushNotification($q, $data));
  

Похоже, что это не отправляет push-уведомление на устройства, но когда я жестко кодирую значение в sendNotification и просто выполняю его без кнопки, это работает, но не тогда, когда я передаю значение и нажимаю кнопку для отправки.

Комментарии:

1. Что, если вы жестко закодируете значение, но все равно попытаетесь вызвать его с помощью кнопки?

2. Я не могу найти ничего неправильного в вашем коде … все три скрипта находятся на одном уровне каталога?

3. ах, хорошо, по какой-то причине они отправляются, но их получение на устройствах пользователей занимает много времени, некоторые занимают до 30 минут