Уведомления Firebase через серверный код

Новая служба уведомлений Firebase позволяет использовать пользовательский интерфейс консоли для отправки уведомлений всем пользователям мобильных приложений.

Но я не смог найти REST API для службы уведомлений Firebase. Я хочу автоматически отправлять уведомления мобильным пользователям через серверный код на основе события. У службы уведомлений Firebase есть API, к которому можно получить доступ через HTTP/S?

Ответ 1

Да, вы можете.

1) Во-первых, получите ключ сервера вашего проекта firebase:

Project Settings -> Cloud Messaging Tab -> Copy the Server key.

2) Теперь, вот пример php script для отправки уведомлений на конкретное устройство:

<?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);

?>

3) Вывод при выполнении:

{"multicast_id":8XXXD,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:14XX"}]} 

Ответ 2

В основном! Документация находится под Firebase Cloud Messaging: https://firebase.google.com/docs/cloud-messaging/downstream

Основное отличие состоит в том, что сообщения, отправленные с консоли уведомлений, получают некоторое автоматическое отслеживание Firebase Analytics: для отправляемых вами сообщений вы можете добавить некоторые события для отслеживания вручную.

Ответ 3

@Narendra Naidu, Привет, вы можете попробовать этот фрагмент кода для уведомления на стороне сервера. создайте простой класс java в коде проекта на стороне сервера и добавьте этот метод с параметром, вам также понадобятся некоторые учетные данные firebase для этого. попробуйте следующее.

// Method to send Notifications from server to client end.
public final static String AUTH_KEY_FCM = "ApidhfkIjd_cAdhpa-ZZ065hskiH53Hw3g";
public final static String API_URL_FCM = "https://fcm.googleapis.com/fcm/send";
// userDeviceIdKey is the device id you will query from your database     
public static void pushFCMNotification(String userDeviceIdKey) throws     Exception{

String authKey = AUTH_KEY_FCM;   // You FCM AUTH key
String FMCurl = API_URL_FCM;     

URL url = new URL(FMCurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setUseCaches(false);
conn.setDoInput(true);
conn.setDoOutput(true);

conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization","key="+authKey);
conn.setRequestProperty("Content-Type","application/json");

JSONObject json = new JSONObject();
json.put("to",userDeviceIdKey.trim());
JSONObject info = new JSONObject();
info.put("title", "Notificatoin Title");   // Notification title
info.put("body", "Hello Test notification"); // Notification body
json.put("notification", info);

OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(json.toString());
wr.flush();
conn.getInputStream();
}

Прочитайте этот документ документа:

он предоставляет вам информацию о завершении сервера для отправки уведомлений с вашего сервера на серверное приложение firebase. Кроме того, найдите этот ниже простой Java-код (конечный класс сервера), из которого вы получите некоторое представление о том же.

Пожалуйста, дайте мне знать, если я могу оказать дополнительную помощь.