
Here is the code for sending notifications using C #, I made it work
WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; tRequest.ContentType = "application/json"; var objNotification = new { to = notification.DeviceToken, data = new { title = notification.NotificationTitle, body = notification.NotificationBody } }; string jsonNotificationFormat = Newtonsoft.Json.JsonConvert.SerializeObject(objNotification); Byte[] byteArray = Encoding.UTF8.GetBytes(jsonNotificationFormat); tRequest.Headers.Add(string.Format("Authorization: key={0}", serverKey)); tRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); tRequest.ContentLength = byteArray.Length; tRequest.ContentType = "application/json"; using (Stream dataStream = tRequest.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); using (WebResponse tResponse = tRequest.GetResponse()) { using (Stream dataStreamResponse = tResponse.GetResponseStream()) { using (StreamReader tReader = new StreamReader(dataStreamResponse)) { String responseFromFirebaseServer = tReader.ReadToEnd(); FCMResponse response = Newtonsoft.Json.JsonConvert.DeserializeObject<FCMResponse>(responseFromFirebaseServer); if (response.success == 1) { new NotificationBLL().InsertNotificationLog(dayNumber, notification, true); } else if (response.failure == 1) { new NotificationBLL().InsertNotificationLog(dayNumber, notification, false); sbLogger.AppendLine(string.Format("Error sent from FCM server, after sending request : {0} , for following device info: {1}", responseFromFirebaseServer, jsonNotificationFormat)); } } } } }
Here is the FCMResponse class used in this code to store the response sent from FMServer
public class FCMResponse { public long multicast_id { get; set; } public int success { get; set; } public int failure { get; set; } public int canonical_ids { get; set; } public List<FCMResult> results { get; set; } } public class FCMResult { public string message_id { get; set; } }
source share