Merhaba arkadaşlar bir cihaza Push Notification yapmak istediğimiz zaman Google Cloud Messaging dediğimiz servisi kullanıyoruz. Kısaca GCM olan bu servis , sunucu görevi gören bilgisayarımızdan göndereceğimiz verinin , android cihaz tarafından alınmasını sağlayacak bir teknolojidir. Bulut teknolojisi kullanarak uygulamara veri göndermeyi sağlar.
Android cihazımızda bir uygulamamız olduğunu farz edelim bu uygulama bize tatile çıktığımız zaman konum bilgimize erişip bize otel adları sunsun ve push notification mantığı ile çalışsın. O civarda otel arıyor olalım ve hareket etiiğimizi anlayan bu uygulama konum bilgimize erişsin. Biz bu uygulamaya sürekli otel var mı diye sormayalım da o bulunduğumuz yerde otel bulduğunda push notification ile bize otel adlarını yollasın.
Eğer uygulamamızda push notification yoksa bizim sürekli sormamız gerekecekti yeni otel buldun mu diye. Bu durum ayrıca zahmet ve serverımızda sürekli bir yogunluğa neden olur.
Fakat bizim uygulamamız GCM ile çalışıyor ve bana çok güzel kolaylık sunuyor. Biz sürekli sayfa güncelleyip sormadan uygulama bizim işimizi görecek ne kadar kolay değil mi ?
Uygulamalara bu push notification olayını yerleştirdiğimiz zaman istediğimiz kullanıcıya istediğimiz mesajı atarak kullanıcıyı uyarabiliyoruz.
Bankalar örneğin böyle bir uygulama kullansa bakiyesi eksiye inen kullanıcılarını tespit etse ve onlara otomatik push notification ile mesaj atsa Paraya ihtiyacın mı var dese çok da güzel olur.
Push Notification ile bir android cihazımıza bildirim yollamak isteyelim bunun için bize bir android uygulaması lazım. Bir diğer olay GCM servisi lazım ve Sunucumuzun olması lazım.
GCM çalşma mantığı ise aşağıdaki resimdeki gibidir.
Ilk adımda android uygulaması application_id and sender_id bilgilerimizi GCM ile paylasır. GCM sunucusuda bu bilgileri tutar.
Ikinci adımda GCM sunucu uygulamasından register_id bilgisi gelir, bu bilgi gelen application_id and sender_id bilgilerini kullanarak uygulamayı register ettikten sonra oluşur.
Mobil uygulama GCM sunucusundan aldığı register_id bilgisini push notification yapacağı servera iletir.
Server da gelen bu regıster_id bilgisini kendi veritabanına kaydeder.
Server kendi application_id si için göndereceği bilgileri GCM'e registration_id olarak bildiriyor.
GCM de bu registration_id üzerinden belirlenen mobil cihaza serverdan gelen bilgiyi iletiyor.
Tüm bu adımların tamamı bahsettiğimiz push notification işlemini gerçekleştiriyor.
Ilk Adım;
Google Cloud Messaging dediğimiz servisi kullanabilmemiz için Google Developer Console girip hesap oluşturmamız gerekiyor. Create New Project e tıklıyoruz. Açılan sayfaya bilgileri giriyoruz (name,id). GCM ile paylaştığımız application_id olur bu.
Projemizi oluşturduktan sonra;
Menuden APİs&AUTH menüsünden Credentials seciyoruz. Açılan sayfadan Create New Key tıklayıp Server Key seçiyoruz. Ve Create dıyoruz. Gelen ekranda APi keyimizi göreceksiniz bunu kullanacağımız yerler olacak bu şekilde bunu da oluşturmuş olduk.
İkinci Adım;
Veritabanını Oluşturma
Bunun için phpMyAdmin kullanacağız. Web uygulamalarını kendi bilgisayarınızda test edebilmek için sisteminizde LAMP (Linux, Apache, MySQL, PHP) server kurulu olmalıdır. buradan LAMP kurulumu gerçekleştirebilirsiniz.
Kurulumu tamamladıktan sonra http://localhost/phpmyadmin adresine giriş yapabilirsiniz. Giriş yaptıktan sonra GCM adında database oluşturuyoruz.Daha sonra SQL tıklayıp aşağıdaki kodu çalıştırdığımızda gcm_users adında bir tablo oluşturmuş oluruz.
1 2 3 4 5 6 7 8 |
|
PHP Projelerini Oluşturma
Veritabanını oluşturduktan sonra php konfigurasyon dosyalarını oluşturmalıyız.
İlk önce veritabanı bilgilerinin yer aldığı config.php dosyası oluşturalım ve aşağıdaki kodu ekleyelim.
config.php
1 2 3 4 5 6 7 8 9 10 |
|
Şimdi ikinci bir dosya oluşturuyoruz db_connect.php adında burada da database bağlantımız sağlanacak.
db_connect.php
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 |
|
Üçüncü dosyamız oluşturduğumuz veritabanında CRUD işlemleri gerçekleştirmek için db_functions.php adında bir dosya olacak ve bu dosya içine kullanıcı oluşturmak için bir fonksiyon yazıyoruz fazlasını yapmakda mümkün.
db_functions.php
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 |
|
Dördüncü oluşturacağımız dosya GCM.php olacak. Bu dosya GCM sunucuya push bildirim istekleri göndermek için kullanılır.
GCM.php
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 |
|
Beşinci oluşturacağımız dosya Register.php dosyası , Bu dosya Android cihazından gelen istekleri alır. Android cihazınızdan Adınız, Mailiniz ve bir Register_id niz ile ki bu id size ilk GCM kayıt olurken verildi, seni bu id ile kayıt ettim demişti GCM.
Bizde bunları kullanarak Böylece uygulamaya dahil olduk bilgilerimizde database aktarıldı, yazdığın register_id bilgisi de database tablomuzdaki Reg_id bilgisine eşitlenir. Aynı zamanda buradaki reg_id bilgimizi GCM.php dosyamıza da yolladık oluşturduğumuz bir mesajla birlikte. GCM.php bu reg_id sine ait cihaza bu mesajı push etmek için GCM servera bağlanacak.
register.php
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 |
|
Altıncı olarak oluşturacağımız dosya send_message.php dosyası , Bu dosya da reg_id ve mesaage bilgilerimizi alıp notification yapması için GCM.php dosyasını çağırır.
send_message.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Son olarak oluşturacağımız dosya index.php dosyası, Bu dosya takip edilen kodları basar. Bu kodlar basit bir admin panel oluşturur , kullanıcı cihazlarını sıralar , bireysel kullanıcılara push notıfıcatıon yollar.
index.php
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
|
Son olarak yaptığımız bu uygulamayı şimdilik bağlı bir Cihazımız olmadığı için bir test.php dosyamız ile Adımızı, Mailimizi ve Random bir Reg_id vererek kayıt işlemlerinin nasıl gerçekleştiğini görelim.
test.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Şimdi çalıştırma zamanı!
Kurulumunu gerçekleştirdiğiniz LAMP ile uygulamarımızı kendi bilgisayarımızda test etmek mümkün demiştik. Bunun için benim bilgisayarım için uzantısı /var/www/html/ olan dizinimin altına tüm bu dosyalarımın olduğu GCM adlı dizinimi yerleştiriyorum. Yeni dizinim /var/www/html/GCM oluyor.
Browsera gelip http://localhost/GCM/ dediğimiz zaman çıkan ekran;
Şimdi bir cihaz bağlıyormuşuz gibi test.php dosyamızı çalıştıralım.
Bunun için http://localhost/GCM/test.php adresine girelim ve bir ad, mail, reg_id bilgisi girelim.
http://localhost/GCM/ adresini tekrar kontrol edelim.
Gördüğünüz gibi bir cihaz eklendi index.php dosyamıza. Burada eklenen cihazlar sıralanır. Ve push bildirimlerimizi mesaj kısmına yazıp send dediğimizde o cihazlara bildirim gitmiş olur.
Bu arada Database de durumlar ne oldu derseniz? O halde ekran görüntüsünü paylaşayım sizinle;
Gördüğünüz gibi girdiğimiz Ad, Mail ve Reg_id bilgileri otomatik olarak oraya kayıt oldu.
Yazımı burada bitireceğim , sonraki aşamada Gerçek bir android cihaz bağlayıp uygulamamıza gerçek bir notification yollayacağız.
İyi çalışmalar.