2016-12-05 3 views
2

Я только что разработал образец firebase с сервером приложений на своем веб-сервере.Отправить Firebase Cloud Messaging для мобильных устройств

Я пробовал его на своем локальном ПК (офлайн), а уведомление о пожарной части отправлено на виртуальные устройства Android.

Но когда я пытаюсь установить файл apk в свои телефонные устройства и передать PHP-файл на мой живой сервер (например, www.aaa.com).

Уведомление пожарной базы не работает вообще. он не отправляется на мои телефонные устройства.

Я что-то пропустил в коде? , Код, как показано ниже. Благодарю.

<?php 
require "connect.php"; 
global $con; 
    if(isset($_POST['Submit'])){ 
     $message  = $_POST['message']; 
     $title  = $_POST['title']; 
     $path_to_fcm = 'https://fcm.googleapis.com/fcm/send'; 
     $server_key = "SERVER KEY HERE"; 
     echo "Data sent ! <br/>"; 

     $sql = "SELECT fcm_token FROM fcm_info"; 
     $result = mysqli_query($con, $sql); 
     $row = mysqli_fetch_row($result); 
      $key = $row[0]; 
     $headers = array('Authorization:key=' .$server_key, 'Content-Type:application/json'); 
     $fields = array('to' => $key, 'notification' => array('title' => $title, 'body'=> $message)); 
     $payload = json_encode($fields); 
     $curl_session = curl_init(); 
     curl_setopt($curl_session, CURLOPT_URL, $path_to_fcm); 
     curl_setopt($curl_session, CURLOPT_POST, true); 
     curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($curl_session, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
     curl_setopt($curl_session, CURLOPT_POSTFIELDS, $payload); 
     $result = curl_exec($curl_session); 
     curl_close($curl_session); 
     mysqli_close($con); 
    } 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Send Notification</title> 
</head> 
<body> 
    <form action='send_notification.php' method="POST"> 
     <table> 
      <tr> 
       <td>Title : </td> 
       <td><input type="text" name="title" required="required" /></td> 
      </tr> 
      <tr> 
       <td>Message : </td> 
       <td><input type="text" name="message" required="required" /></td> 
      </tr> 
      <tr> 
       <td><input type="submit" name="Submit" value="Send notification"></td> 

      </tr> 
     </table> 
    </form> 
</body> 
</html> 
+0

должно установить SERVER KEY ВОТ?? –

+0

Вы пытаетесь от сервера к виртуальному устройству или от локального к реальному устройству? Конечно, проблема в том, что сервер не поддерживает Android-устройство – X3Btel

+0

, там уже установлен ключ сервера. :) ... я просто не хочу отображать ключ сервера – Jamilah

ответ

0
<?php 

$ch = curl_init("https://fcm.googleapis.com/fcm/send"); 
$header=array('Content-Type: application/json', 
"Authorization: key=YOUR KEY"); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "{ \"notification\": { \"body\": \"Weather Forecast\", 
    \"title\": \"YOur title\", 
    \"to\" : \"YOUR DEVICE REG TOKEN\"}" 

curl_exec($ch); 
curl_close($ch); 
?> 
+0

он не работает. извините – Jamilah

+0

какая ошибка вы получаете? –

+0

вывод показывает {"message_id": 7946875986945781340} – Jamilah

-1

пойти в firebase консоль настройки проекта> выберите вторую вкладку «облако сообщений» был бы ваш ключ сервера, который ваш будет необходимо в файле PHP;)

Смежные вопросы