我正在使用firebase从网上发送推送通知

时间:2017-04-24 06:25:54

标签: php android firebase firebase-cloud-messaging

我正在使用firebase从网上发送推送通知,但我无法发送推送通知,而我只获取名称。如何使用firebase帮助我从网上发送推送通知。

这是我的PHP代码。

<?php
$DEFAULT_URL = 'https://pushnotificatioexample.firebaseio.com/.json';

$mytoken = $_POST['token'];
$mymessage =  $_POST['message'];
echo $mytoken;
echo '<br>'.'</br>';
echo $mymessage;

$registrationIds = array($mytoken);

$message = array
       (
        'message'   => 'My awesome message',
        'title'     => 'My awesome title',
        'subtitle'  => 'My awesome subtitle',
        'tickerText'    => 'My awesome Ticker text',
        'vibrate'   => 1,
        'sound'     => 1,
        'largeIcon' => 'large_icon',
        'smallIcon' => 'small_icon'
       );

       $fields = array(
         'registration_ids' => $registrationIds,
         'data' => $message
        );

       $headers = array(
        'Authorization:key = AIzaSyC9M4KFwqdy3vjcIBx9TNO8M7IysADbY_s',
        'Content-Type: application/json'
        );

       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $DEFAULT_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);
       echo $result;
?>

1 个答案:

答案 0 :(得分:0)

看起来您正在从服务端脚本发送云消息。根据Firebase(FCM)官方文档,您不必使用Realtime数据库中的url。所以你必须改变你的网址

来自

$DEFAULT_URL = 'https://pushnotificatioexample.firebaseio.com/.json';

$DEFAULT_URL = 'https://fcm.googleapis.com/fcm/send';

有关详细信息,请参阅Firebase Cloud Messaging HTTP Protocolhere