#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 минут