通过 Firebase 从 Laravel 服务器向 Android 应用发送推送通知

Posted

技术标签:

【中文标题】通过 Firebase 从 Laravel 服务器向 Android 应用发送推送通知【英文标题】:Send Push Notifications from Laravel Server to Android App via Firebase 【发布时间】:2021-04-01 01:11:25 【问题描述】:

是否可以通过基于 laravel 的仪表板而不是通过 firebase 控制台向 android 发送推送通知?

如果可能,步骤是什么?

谢谢。

【问题讨论】:

我会在这里检查一些问题和答案:***.com/… 例如,这个问题似乎有很长的路要走:***.com/questions/57554177/… 就像这样:github.com/kreait/laravel-firebase 【参考方案1】:

你可以为它创建辅助函数。

试试这个:-

function notifications($token=null,$title=null,$message=null,$user_id=null)

    $path_to_firebase_cm = 'https://fcm.googleapis.com/fcm/send';
    $fields = array(
        'to' => $token,
        'notification' => array('title' => $title, 'body' => $message, 'sound' => 'default', 'click_action' => 'FLUTTER_NOTIFICATION_CLICK', 'icon' => 'fcm_push_icon'),
        'data' => array('title' => $title, 'body' => $message, 'sound' => 'default', 'icon' => 'fcm_push_icon'),
    );
    $headers = array(
        'Authorization:key=' . 'Your-fcm-key',
        'Content-Type:application/json'
    );
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $path_to_firebase_cm); 
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;

【讨论】:

【参考方案2】:

你可以使用这个功能

public function send_fcm_notification($title,$body,$target,$chid)
  define( 'API_ACCESS_KEY', 'ENTER_API_KEY_HERE' );
  $fcmMsg = array(
             'title' => $title,
             'body' => $body,
             'channelId' => $chid
            );
  $fcmFields = array(
                'to' => $target, //tokens sending for notification
                'notification' => $fcmMsg,
               );
  $headers = array(
                 'Authorization: key=' . API_ACCESS_KEY,
                 'Content-Type: application/json'
               );
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fcmFields ) );
$result = curl_exec($ch );
curl_close( $ch );
//echo $result . "\n\n";

【讨论】:

以上是关于通过 Firebase 从 Laravel 服务器向 Android 应用发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如何在实时 Firebase 数据库上侦听以通过后端 laravel 和 websocket 动态获取数据,而不使用 javascript

使用 Laravel 5.2 连接到 Firebase -“创建资源时出错”

使用 Laravel 托管 ReactJS

如何将 firebase 令牌传递给 Laravel 应用程序?

如何从节点服务器发送 Firebase 云消息?

为啥没有通过 Firebase FCM 从 Web API 定向到特定 iOS 设备的推送通知?