Online SMS Gateway ve PHP ile yapılan yorumları cebe mesaj olarak otomatik yollamak

Bazı sitelerin SMS ile raporlama hizmeti verdiğini görmüşsünüzdür. Online SMS Gateway servisi ile yapılabilecek bu özelliği kendi web projemize eklemek oldukça basit. Bu yazıda PHP ve HTTP SMS Gateway ile cep telefonuna SMS mesajı yollamayı nasıl yapacağımızı ve ne gibi uygulamalar yapılabileceğini anlatacağım.

1) Online SMS Gateway hesabı açmak

İnternet üzerinden SMS atabilmemiz için Online SMS Gateway sağlayıcıları tarafından geliştirilen ve developerların kullanabilmesi için farklı tipte API 'ler mevcut. Bizim burada ilgileneceğimiz basit olduğu için HTTP API olacak. Fakat bir SMS Gateway servisini kullanabilmemiz için belli bir ücret ödememiz şart. Bu yüzden önce Online SMS Gateway kullanabilmemizi sağlayan bir servis sağlayıcısına belli bir ücret karşılığında hesap açmanız gerekiyor. Eğer SMS ile mesaj yollayabileceğiniz web projeleri yapmakta ciddiyseniz size kendi kullandığım Online SMS Gateway'i tanıtacağım, buradan buyrun : Önce http://www.clickatell.com adlı siteyi girip kendinize en uygun olan Online SMS Gateway'i seçin. Fakat isterseniz buradan satın almadan önce SMS Gateway'i test etmek için ücrettsiz olarak kullanabilirsiniz. Ben beğendiğim için hemen satın alıp kullanmaya başladım ve size de önerebilirim. Aslında satın alacağınız SMS kredisi olacak. Gerektiği zaman tekrar kontör ekler gibi hesabınıza kredi ekleyebilirsiniz. Hesabınızı yaklaşık olarak 10 dakika içerinde açtıktan sonra hemen PHP ile HTTP API'yi kullanmaya başlayabiliriz .

Hesabınızı açtıktan sonra login olun ve "Manage my Products" sekmesine gidip aşağıdaki gibi HTTP API oluşturun :


http_sms_api
HTTP API oluşturduktan sonra

Artık bildiğimiz GET ve POST metodlarını kullanarak ister sunucu tarafında ister kullanıcı tarafında Javascript ile oluşturduğumuz HTTP API'yi kullanabiliriz. Örnek olsun diye sunucu taraflı basit ve çok kullanışlı olmayan bir uygulama geliştireceğiz. Siteden indirdiğim pdf dökümanın aşağıdaki parçasında HTTP API'yi nasıl kullanacağımız anlatılmış :


http_sms_api_url_parameters
Önemli HTTP API parametleri

Uygulamada kullanıcıdan gelen her yorumu cebe SMS atmak istediğimizi düşünelim. Yapacağımız uygulamanın resimli kaba anlatımı aşağıda:


sms_gateway_sunucu_dongu
Yapacağımız uygulamanın kaba şekli

3) HTTP API kullanarak PHP ile SMS yollama

Bu durumda bir sayfaya yorum eklemek için gereken 3 adet bilgiyi içeren (isim, site, yorum) bir formu POST metodu ile sunucuya gönderdiğimizi farz ederek işlemlere başlayalım :

Şimdi web sunucumuzun "www" (ya da "htdocs") klasöründe bir PHP dosyası oluşturalım ve aşağıdaki gibi kullanıcıdan aldığımız yorumu kendi cebimize SMS olarak atmamızı sağlayacak PHP kodumuzu yazalım:

<?php
// formdan gelen verileri alıyoruz
$isim= $_POST['isim'];
$site= $_POST['site'];
$yorum=$_POST['yorum'];
// yollayacağımız sms mesajını burada hazırlıyoruz
$SMS_Text= urlencode( $yorum."yollayan:".$isim. " ".  $site  );
// NOT: Tüm bilgilerin uzunluğunuz 160 karakteri geçmeyecek şekilde olması için gerekli sunucu kontrollerini yapmayı unutmamak gerek.


// HTTP API'yi kullanmak için sabit kimlik bilgilerini değişkenlere atıyoruz.
$user = "kullanici_adiniz";
$password = "sifreniz";
$api_id = "xxxxxx";
$baseurl ="http://api.clickatell.com";

// SMS yollayacağımız cep no
$to = "+905321112233"; 
// HTTP API servisine session açmak için URL'yi hazırlıyoruz
$url = "$baseurl/http/auth?user=$user&password=$password&api_id=$api_id";
// HTTP API'ye bağlanıp oturum açmayı deniyoruz
$ret = file($url);
// Gelen cevabın ilk satırı oturum açıp açamadığımızı anlamamıza yarayacak Stringi içeriyor.
$sess = split(":",$ret[0]);
// Gelen cevap "OK" ise HTTP SMS API'ye verdiğimiz kimlikle oturumu açtığımızı anlıyoruz.
if ($sess[0] == "OK") {
     // Gereksiz boşlukları siliyoruz.
    $sess_id = trim($sess[1]);
    // Burada SMS'i yollamak için gerekli URL'yi oluşturuyoruz.
    $url = "$baseurl/http/sendmsg?session_id=$sess_id&to=$to&text=$SMS_Text";
    // SMS'i HTTP API'ye geçerli oturumla tekrar bağlanarak yollamayı deniyoruz.
    $ret = file($url);
    $send = split(":",$ret[0]);
    // Gelen cevap "ID" satırını içeriyorsa SMS'in yollandığını anlıyoruz
    if ($send[0] == "ID")
        {
            // Mesaj yollandığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
        }
    else
        {        
            // Mesaj yollanamadığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
        }
} 
else {
        // Oturum açılamadığında sunucuda log tutuyorsanız burada Loglama yapabilirsiniz.
        exit();
     }
?>
Yaptığımız özetle bir kullanıcı tarafından yazılan her yorumu, yorumcu adını ve sitesini içeren yazıyı SMS olarak otomatik olarak PHP ile yollanmasını sağladık. Burada yaptığımız uygulamayı kendiniz değiştirip profesyonel hale getirebilirsiniz. Normalde bu şekilde SMS yollamak performans açısından iyi değil. Bunun yerine PHP Thread konusunda zayıf olduğu için Python/Java ile belli aralıklarla çalışan bir Thread yazmanız ve bu Thread'in yollanacak SMS 'i yorumlar tablosundan okuyup yollanmayanları yollayacak hale getirmeniz çok daha mantıklı olacaktır.

Bunun yanında sadece PHP ile değil aynı uygulamayı yine aynı HTTP API servisini kullanarak ASP.NET , Java v.b. gibi diğer web programlama dillerinde de geliştirebilirsiniz.

SMS ile kullanıcıları bilgilendirme banka, raporlama, ihbar, yemek siparişi vermek için yapılan web projelerinde ve daha akla gelmeyen alanlarda kullanılabilir. Satın alacağınızOnline SMS Gateway'in hem ucuz hem de kaliteli olmasına da dikkat etmenizi tavsiye ederim.

kaynak : http://www.clickatell.com
yazan Zülküf Küçüközer tarih   28th April 2010
primary key words  Php | Online sms gateway | Web projeleri | Http api okunma  41973
secondary key words  Hesap | Mesaj | Yorum
writing osman writing 19th July 2010
Ücretsiz bu hizmeti veren bi yer varmı ?
writing zülküf küçüközer writing 20th July 2010
Ücretsiz olarak bu servisi veren bir yer ben bulamadım maalesef.
writing sefer writing 11th August 2010
bu sistemi bankalardada kullanıyorlar şu güvenlik sisteminde aynısını bende yapmak içn uğraşıyorum postagüvercininin http api serverini kullanarak ama
writing sefer writing 11th August 2010
formu gönderirken kullanıcı adı şifreyi ve mesajı kimsenin göremeyeceği bir şekilde yollamak istiyorum yani gönderen sadece tel numarasını giricek bunu nasıl yapabiliriz? şimdiden teşekkürler...
writing zülküf küçüközer writing 28th August 2010
Merhaba, bunu için şifre ve kullanıcı adını sunucu tarafında saklamanız gerekiyor. ASP.NET, PHP v.b. gibi teknolojilere göre bu değişir. En basit yöntem veritabanında saklamanız olacaktır. Mesela parametre adında iki alanlı bir tablo oluşturun ve parametreleri sunucu tarafında kullanın.
writing mirc writing 9th June 2011
tşk
writing hayrullah writing 9th May 2012
keşke örnek dosya koysaydınız :)
writing Necdet writing 15th June 2012
Teşekkür ederiz,güzel bir anlatım olmuş,ellerine sağlık.
writing ?afak SARAÇO?LU writing 11th September 2012
Çok teşekkür ederim harika paylaşım olmuş
writing Ata writing 19th September 2012
ne kadar bu olayın ücreti ?
writing Haluk writing 20th February 2013
www.kaynaksms.com üzerinden sms sistemini kullaniyorum.. Türk firmasi
writing zeybek writing 4th March 2013
bu sadece gönderme servisi olarak mı hizmet veriyor sms alma servisi yokmu?
writing zülküf küçüközer writing 7th March 2013
iki yönlü olarak da sms alma/yollama servisi var diye hatırlıyorum.
writing Chat writing 15th October 2015
Fiyatlar konusunda biraz bilgi verebilirmisiniz yani Sms basina ne kadar ücret kesiliyor ve Sms satan firmalar var birçok, onlarla karsilastirma yaptiniz mi hangisi daha uyguna geliyor . Tesekkürler.