2016-12-29 77 views
0

我有一個應用程序使用普通的PhPMyAdmin數據庫作爲後端,應用程序與數據庫的所有交互都通過PHP腳本進行。如何發送基於數據庫字段的推送通知

現在我想基於數據庫發送推送通知給用戶。讓我們說我有一個單獨的數據庫(用戶名,要發送的消息)。

有任何服務或腳本可以讓我做我想做的事嗎?

或者是否有任何其他服務(例如Firebase)允許我做我想做的事?

回答

0

在我們大多數人使用GCM進行推送通知之前,它已被棄用。我使用FCM(firebase雲消息傳遞),它的工作令人驚歎。你永遠不會去尋找GCM教程或指導了。這link會給你一切你需要設置推送通知。除此之外,如果您決定爲ios FCM支持創建推送通知。如果您想創建聊天應用程序,請改用XMPP服務器。

有一些php代碼從未在FCM文檔中提及。在android中實現所有代碼之後,您需要執行以下代碼以將請求發佈到FCM服務器,FCM將處理該代碼並根據您提供的註冊令牌推送到所有設備。

$url = 'https://fcm.googleapis.com/fcm/send'; 
//$field is the parameter you will be sending to FCM server in order to let FCM know which device, and the message you need to send to. You will get a better understading after study the doc. 
$fields = array(
      'priority' => "high", 
      'registration_ids' => $tokens, 
      'data' => $data 
      ); 
     $headers = array(
      'Authorization:key = 'your authorization key', 
      'Content-Type: application/json' 
      ); 
     $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('Curl failed: ' . curl_error($ch)); 
     } 
     curl_close($ch); 

你會發現FCM的工作方式有點混亂,但最終你會習慣它。