public string PostCustomNotification(SendNotificationDto notification) { try { WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; //serverKey - Key from Firebase cloud messaging server tRequest.Headers.Add(string.Format("Authorization: key={0}", ServerKey)); //Sender Id - From firebase project setting tRequest.Headers.Add(string.Format("Sender: id={0}", SenderId)); tRequest.ContentType = "application/json"; var payload = new { to = notification.Token, priority = "high", content_available = true, notification = new { body = notification.Message, title = notification.Title, badge = 1 }, data = new { key1 = "value1", key2 = "value2" } }; string postbody = JsonConvert.SerializeObject(payload).ToString(); var byteArray = Encoding.UTF8.GetBytes(postbody); tRequest.ContentLength = byteArray.Length; Stream dataStream = tRequest.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse tResponse = tRequest.GetResponse(); dataStream = tResponse.GetResponseStream(); StreamReader tReader = new StreamReader(dataStream); var sResponseFromServer = tReader.ReadToEnd(); tReader.Close(); dataStream.Close(); tResponse.Close(); return(sResponseFromServer); } catch (Exception ex) { throw new Exception($"Hubo un error en la base de datos - {JsonConvert.SerializeObject(ex)}"); } }
public IActionResult PostNotification([FromBody] SendNotificationDto request) { return(Ok(PostCustomNotification(request))); }