.Net tabanlı projelerden firebase’e bağlı mobil uygulamalara bildirim göndermek için kullandığımız kodblogu aşağıdadır. Kodlarımızı kısaca açıklayacak olursak json olarak firebase web requestte bulunuyoruz. Mobil uygulamalarımızı android ve ios olarak firebase’e ekledikten sonra firebaseden aldığımız ApplicationId ve SenderId leri xxxx alanlarına yazıyoruz. Aynı şekilde her cihazın registiration keylerini biliyor olmamız gereklidir. Registiration keylerini string dizi şeklinde dv olarak, ve bildirim olarak gidecek stringi de msj’a ekliyoruz.
C# Kodları
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
public static void SendPushNotification(string dt, string[] dv, string msj) { if (dt == "Android" || dt == "iOS") { try { //firebasee server key string applicationID = "xxxxxxx"; //fire base sender id string senderId = "xxxxx"; //uygulamanın firebasdeki registiration keyi (dv) WebRequest tRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); tRequest.Method = "post"; tRequest.ContentType = "application/json"; var data = new { registration_ids = dv, notification = new { body = msj, sound = "Enabled", icon = "fcm_push_icon" } }; var serializer = new JavaScriptSerializer(); var json = serializer.Serialize(data); Byte[] byteArray = Encoding.UTF8.GetBytes(json); tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID)); tRequest.Headers.Add(string.Format("Sender: id={0}", senderId)); 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; ; } } } } } catch (Exception ex) { } } } |
çok faydalı bir kod paylaşımı, günlerdir arıyordum. Teşekkürler
Elinize sağlık derli toplu güzel olmuş
İstenilen tarihte gönderebiliyor muyuz ?
Saat 12:00 da atsın mesela ?
Firebase bunu yapıyor mu bilmiyorum ama illaki yapıyordur araştırmak lazım.
Kulağı tersten tutmak olacak ama geçici çözüm olarak ilk aklıma gelen: bu kodu çalıştıran bir exe yapın. Görevi çalıştığında bildirim göndermek olsun. Windowsun zamanlanan görevler özelliğini kullanarak istenen tarih ve zamanda bu yaptığınız exeyi otomatik çalıştırtabilirsiniz.
Öncelikle elinize sağlık sorunumu halletti çalışıyor. Yalnız burdaki dt yi anlamadım.
dt ile metoda telefonun sürümünü gönderiyoruz. Yani android veya ios cihazlara farklı bilgirimler göndermek istersek dt ile ayırt edeceğiz.