我已经找到了firebase,根据手册和有关它的许多文章,它将有助于在php项目中创建push函数。
我完全了解使用Curl可以将数据发送到Firebase服务器。但是我无法想到将这些数据实时转发给目标用户的好主意。Javascript可以实现这一点,但它与Ajax Polling一样安静吗?
使用PHP和Javascript,以及诸如Firebase之类的推送云服务,如何进行实时推送通知?概略的机制会有所帮助!
首先,您应该为要在其上发送推送通知的设备使用``设备令牌'';其次,您必须具有可以从Firebase控制台轻松获取的``服务器密钥'';现在,如果要进行实时pushnotification使一个AJAX POST调用以下功能的,这将需要的数组为具有参数devicetoken和消息,你想在推送通知通过。
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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句