PHP ile Android cihazlara bildirim gönderme

Merhabalar,

Yapmış olduğumuz bir iş için, hazırlanan android uygulamasını kullanan kişilere istediğimiz zaman bildirim gönderebilmek gibi bir ihtiyacımız oldu. Ki zaten benzeri uygulamalar neredeyse hepimiz kullanıyoruz. Cihazlarımıza aniden kullandığımız uygulamalarla alakalı bildirimler düşebiliyor. Bunun için araştırmalar yaparken, kısa ve gayet kolay şekilde kullanılabilecek bir PHP betiği buldum. Yapılandırılmasını düzgün yaparsanız, herhangi bir problem yaşamıyorsunuz. Biz olumlu sonuçlar aldık.

Bu ufak betiği sizinlede paylaşayım, belki ihtiyacınız olabilir. Kendi yapınıza göre farklı hallerede getirebilirsiniz tabi ki ama, bu kod parçası temel olarak bir işi yapıyor. Daha işlevsel hale getirmek sizlere kalmış.

Buyrun bu da kodumuz;

<?php

 // API access key from Google API's Console
 define( 'API_ACCESS_KEY', 'YOUR-API-ACCESS-KEY-GOES-HERE' );

 $registrationIds = array( $_GET['id'] );

 // prep the bundle
 $msg = array
 (
 'message' => 'here is a message. message',
 'title'=> 'This is a title. title',
 'subtitle'=> 'This is a subtitle. subtitle',
 'tickerText'=> 'Ticker text here...Ticker text here...Ticker text here',
 'vibrate'=> 1,
 'sound'=> 1,
 'largeIcon'=> 'large_icon',
 'smallIcon'=> 'small_icon'
 );

 $fields = array
 (
 'registration_ids' => $registrationIds,
 'data'=> $msg
 );

 $headers = array
 (
 'Authorization: key=' . API_ACCESS_KEY,
 'Content-Type: application/json'
 );

 $ch = curl_init();
 curl_setopt( $ch,CURLOPT_URL, 'https://android.googleapis.com/gcm/send' );
 curl_setopt( $ch,CURLOPT_POST, true );
 curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
 curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
 curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
 curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $fields ) );
 $result = curl_exec($ch );
 curl_close( $ch );

 echo $result;

Burada önemli olan hususların en başında Google API anahtarınız ve $msg dizisi içerisindeki veriler geliyor. Google APIs Console'dan aldığınız anahtar kodunuzu, betiğin en başındaki istenilen yere doğru bir şekilde yazdığınızda, başka herhangi bir işlem yapmanıza gerek kalmıyor. Daha sonrasında $msg dizisi içerisindeki verileri kendinize göre düzenleyebilirsiniz. Değerlerin ne iş yaradığı konusu zaten gayet açık bir şekilde belli isimlerinden dolayı. Bunların hepsini kullanmak zorunda değilsiniz tabiki. Sadece title ve message değerlerini belirterek kullanabilirsiniz mesela.

Bundan sonrası da size kalıyor. İstediğiniz değerleri yollayarak, farklılıkları inceleyerek, göndereceğiniz bildirimi net olarak ayarlayabilirsiniz. $msg dizisi içindeki değerlere ek değerler olabileceğini düşünüyorum, bu nedenle bu konuda da araştırma yapıyorum. Şayet varsa Android API kaynağında değinmişlerdir ama, daha detaylı şekilde bakmaya fırsatım olmadı. Bir şeyler bulursam; buraya da ekler, bilgi veririm.

Umarım işinize yarar, ihtiyacınız olduğunda basitçe bu işlemi halledersiniz. Bu arada, betiği bulduğum Github sayfasıda burası. Burayı da takip edebilirsiniz. 

Kodla kalın. Sağlıcakla.