通过 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 -“创建资源时出错”