2017-02-10 62 views
-1

我已經找到firebase,並根據手冊和許多文章,這將有助於在php項目中創建推送功能。什麼是使用JavaScript和PHP「推」的確切機制?

我完全可以理解,用Curl,我可以發送數據到Firebase服務器。但我不能認爲體面的想法將數據實時轉發給目標用戶。 Javascript會啓用該功能,但與Ajax輪詢不一樣嗎?

使用PHP和Javascript,推動像firebase這樣的雲服務,我該如何製作Realtime Push Notification?粗略的機制草圖將有所幫助!

+0

閱讀[firebase doc](https://firebase.google.com/docs/web/setup)中的入門知識。簡單的谷歌搜索將導致許多在線教程。 –

回答

0

首先,你應該有「設備令牌」在設備上要發送的推送notification.Secondly您必須具有「服務器密鑰」,你可以很容易地從火力console.Now得到如果你想實時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; 
} 
+0

歡迎來到Stackoverflow。請花些時間閱讀如何寫出一個好的答案。閱讀[this](http://meta.stackexchange.com/a/7659/338114)和[this](http://stackoverflow.com/help/how-to-answer) –

+0

感謝您的信息。 @SouravGhosh –

相關問題