You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using Common; using log4net; using System; using System.Configuration; using System.IO; using System.Net; using System.Text; using System.Web.Script.Serialization;
namespace PushNotification { public static class FcmNotifier { private static readonly ILog Log = LogManager.GetLogger(typeof(FcmNotifier));
public static void Notify(string fcmToken, string body, string title, bool isGroup = false, object data = null) { if (string.IsNullOrEmpty(fcmToken)) { Log.Debug("Fcm device id is empty: " + fcmToken); return; } PushNotificationPayload payload = new PushNotificationPayload(); payload.to = isGroup == true ? "/topics/" + fcmToken : fcmToken; payload.notification = new Notification { body = body, title = title }; payload.data = data;
try { Log.Debug("Server is firing push notification" + fcmToken);
WebRequest tRequest = WebRequest.Create(ConfigurationManager.AppSettings["GoogleFcm"].ToString()); tRequest.Method = "POST"; tRequest.ContentType = "application/json";
var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(payload); Byte[] byteArray = Encoding.UTF8.GetBytes(json); tRequest.Headers.Add(string.Format("Authorization: key={0}", ConfigurationManager.AppSettings["FcmAuthorizationHeader"].ToString())); tRequest.Headers.Add(string.Format("Sender: id={0}", ConfigurationManager.AppSettings["fcmSenderId"].ToString())); tRequest.ContentLength = byteArray.Length; 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 sResponseFromServer = tReader.ReadToEnd(); string str = sResponseFromServer;
// Log.Info($"Google FCM Api call success: {str}");
Log.Info(serializer.Serialize( new FireBaseLogResponseViewModel() { Response = str, Data = json }));
} } } } } catch (Exception ex) { Log.Error(ex.Message, ex); Log.ErrorFormat("Google FCM Api call failed Exception {0}:", ex.Message); } }
} }
|