通过服务器端代码的Firebase通知

Nar*_*idu 2 android ios firebase firebase-cloud-messaging firebase-notifications

新的Firebase通知服务允许我们使用控制台用户界面向所有移动应用用户发布通知.

但我找不到Firebase Notifications Service的任何REST API.我想根据事件通过服务器端代码自动向移动用户发送通知.Firebase Notifications Service是否具有可通过HTTP/S访问的API?

tes*_*erx 10

是的你可以.

1)首先,获取firebase项目的服务器密钥:

Project Settings -> Cloud Messaging Tab -> Copy the Server key.
Run Code Online (Sandbox Code Playgroud)

2)现在,这是一个示例php脚本,用于向特定设备发送通知:

<?php
$ch = curl_init("https://fcm.googleapis.com/fcm/send");

//The device token.
$token = "device_token_here";

//Title of the Notification.
$title = "The North Remembers";

//Body of the Notification.
$body = "Bear island knows no king but the king in the north, whose name is stark.";

//Creating the notification array.
$notification = array('title' =>$title , 'body' => $body);

//This array contains, the token and the notification. The 'to' attribute stores the token.
$arrayToSend = array('to' => $token, 'notification' => $notification);

//Generating JSON encoded string form the above array.
$json = json_encode($arrayToSend);

//Setup headers:
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key= your_server_key_here';

//Setup curl, add headers and post parameters.
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);       

//Send the request
curl_exec($ch);

//Close request
curl_close($ch);

?>
Run Code Online (Sandbox Code Playgroud)

3)执行时输出:

{"multicast_id":8XXXD,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:14XX"}]} 
Run Code Online (Sandbox Code Playgroud)