"push" 使用 javascript 和 php 的确切机制是什么?
What is exact mechanism of "push" using javascript and php?
我发现了 firebase,根据手册和许多关于它的文章,它有助于在 php 项目中创建推送功能。
我完全可以理解,使用 Curl,我可以将数据发送到 firebase 服务器。但我想不出将数据实时转发给目标用户的好主意。 Javascript 将启用它,但它与 Ajax 轮询一样安静吗?
使用PHP和Javascript,以及firebase等推送云服务,如何进行实时推送通知?机制的粗略草图会有所帮助!
首先,您应该拥有要发送推送的设备的“设备令牌”notification.Secondly您必须拥有“”服务器密钥',如果您想进行实时推送通知,您可以轻松地从 firebase console.Now 获得,只需进行 ajax POST 调用 到下面的函数,它将 array 作为具有 devicetoken 和 message 的参数] 你想传递推送通知。
public function sendNotification($postData = ""){
//FCM api URL
$url = 'https://fcm.googleapis.com/fcm/send';
//api_key available in Firebase Console -> Project Settings -> CLOUD MESSAGING -> Server key
$server_key = 'AAAA8mhm5CE:APA91bE420_Dl5GcRwpmNCvwB-m6QSLeEXhwTjNs5XR8RRSdBWcWkOuXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$data = $postData;
$devicetoken = $data['devicetoken'];
$message = $data['messege'];
$fields = array (
'registration_ids' => array (
$devicetoken
),
'notification' => array (
"title" => "Title",
"text" => $message
)
);
//header with content_type api key
$headers = array(
'Content-Type:application/json',
'Authorization:key='.$server_key
);
$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_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);
return TRUE;
}
我发现了 firebase,根据手册和许多关于它的文章,它有助于在 php 项目中创建推送功能。
我完全可以理解,使用 Curl,我可以将数据发送到 firebase 服务器。但我想不出将数据实时转发给目标用户的好主意。 Javascript 将启用它,但它与 Ajax 轮询一样安静吗?
使用PHP和Javascript,以及firebase等推送云服务,如何进行实时推送通知?机制的粗略草图会有所帮助!
首先,您应该拥有要发送推送的设备的“设备令牌”notification.Secondly您必须拥有“”服务器密钥',如果您想进行实时推送通知,您可以轻松地从 firebase console.Now 获得,只需进行 ajax POST 调用 到下面的函数,它将 array 作为具有 devicetoken 和 message 的参数] 你想传递推送通知。
public function sendNotification($postData = ""){
//FCM api URL
$url = 'https://fcm.googleapis.com/fcm/send';
//api_key available in Firebase Console -> Project Settings -> CLOUD MESSAGING -> Server key
$server_key = 'AAAA8mhm5CE:APA91bE420_Dl5GcRwpmNCvwB-m6QSLeEXhwTjNs5XR8RRSdBWcWkOuXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
$data = $postData;
$devicetoken = $data['devicetoken'];
$message = $data['messege'];
$fields = array (
'registration_ids' => array (
$devicetoken
),
'notification' => array (
"title" => "Title",
"text" => $message
)
);
//header with content_type api key
$headers = array(
'Content-Type:application/json',
'Authorization:key='.$server_key
);
$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_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($ch);
if ($result === FALSE) {
die('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);
return TRUE;
}