2017-02-10 2 views
-1

私はfirebaseを見つけました。マニュアルとそれに関する多くの記事によれば、それはPHPプロジェクトのプッシュ機能の作成に役立ちます。javascriptとphpを使用した「プッシュ」の正確なメカニズムは何ですか?

私は、CurlでFirebase Serverにデータを送信できることを十分に理解できます。しかし、リアルタイムでそのデータをターゲットユーザーに転送することはまともな考えではありません。 Javascriptはこれを有効にしますが、Ajax Pollingと同じではありませんか?

PHPとJavascriptを使用し、firebaseのようなプッシュクラウドサービスを使用して、リアルタイムプッシュ通知を行うにはどうすればよいですか?メカニズムの大まかなスケッチが役立つだろう!

+0

[firebase doc](https://firebase.google.com/docs/web/setup)から読み始めてください。シンプルなGoogle検索は、多くのオンラインチュートリアルにつながります。 –

答えて

0

は、まずあなたはnotification.Secondlyあなたが簡単にfirebase console.Nowから得ることができた 'キーをサーバの持っている必要がありますあなたはプッシュを送信したいデバイスのための「トークンデバイス」を持つべきですあなたがリアルタイムpushnotificationを作りたい場合は、単にdevicetoken、あなたがプッシュ通知に渡したいメッセージを持つ引数として配列がかかります以下の機能にAjaxのPOST呼び出しを作ります。

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 –

関連する問題