Sitenize kullanıcıların Openid ile girişini sağlamak için openid.net‘den bulabileceğimiz değişik kod kütüphaneleri mevcut. RPX ile bu kütüphanelerle uğraşmadan sayfaya bir kaç kod ekleyip kişilerin Openid hesabı ile giriş yapmalarını sağlayabiliyoruz. Belirtmekte yarar var, Google hesapları da Openid hesabı olarak kulanılmaya başlanmış bulunmakta.
RPX API’yi kullanmak için aşağıdaki yolları izliyoruz.
1. Öncelikle RPX‘in sitesine Openid hesabımız ile giriyoruz (Başka türlü olması beklenemezdi zaten). Böylece bir API key alıyoruz.
2. Sayfaya Openid ile girişin yapılabileceği kodları ekliyoruz. Bunun için önümüzde iki seçenek var. Sayfaya iframe olarak ekleyebileceğimiz gibi giriş ekranının bir lightbox örneği olarak açılmasını da sağlayabiliriz.
“token_url” olarak verdiğimiz sayfa Openid hesabını kullanma izni aldıktan sonra RPX API’nin döneceği sayfa olacaktır. RPX API bu sayfaya aşağıdaki örnekte olduğu gibi bir “token” parametresi gönderecek.
3. Bizde signin.php dosyasında bu token değerini alıp az önce giriş yapan kullanıcının bilgilerini almak amacıyla RPX API’ye aşağıdaki gibi bir sorgu gönderiyoruz.
Format olarak XML veya JSON seçebiliyoruz.Az önce Openid ile giriş yapan kullanıcın bilgilerini erişebiliyorsunuz. Burada kullandığınız programlama dili ile sonuçları işlemeniz gerekiyor.
Yahoo Pipes kullanarak XML dsyalarının içeriğinden bir RSS oluşturabiliyoruz. Bugün bunu yaparken Eburhan‘ın programcılar için döviz kurları servisi olan Doviz.ws‘nin XML dosyasını kullanacağız. Doviz.ws’den aldığımız XML dosyası aşağıdaki şekilde.
Yahoo Pipes’da bir XML dosyasını almak için öncelikle ‘Fetch Data’ modülünü alıyoruz. URL bölümüne XML dosyasının adresini path to item list bölümüne de XML dosyasında kullanmak istediğimiz parametrenin üst başlığını yazıyoruz.
Bu örnekte path to item list bölümüne dolar yazmamızın sebebi dolar alış ve satış değerlerinin XML dosyasında aşağıdaki gibi yer alması.
İkinci aşamada XML dosyasında <dolar> parametresinin altındaki <al> ve <sat> değerlerini alıp RSS’in içine ekliyoruz. Bunun içinde aşağıdaki gibi önce bir Loop operatörü alıp içine String Builder operatörünü koyuyuruz. String Builder ile al ve sat değerlerini birleştirip item.title’a eşitliyoruz.
En sonunda yaptığımız bu işlemi Pipe Output bölümü ile birleştiriyoruz. Pipe’ı kaydettikten sonra sayfanın üstünde çıkan Run Pipe linki ile çalıştırıyoruz. Çalıştırdığımız Pipe’ın farklı şekillerde çıktılarını alabiliriz. More Option bölümünden Get as RSS linkine tıklayarak RSS oluşturma işini tamamlamış oluyoruz.
Yukarıdaki örneği sizde kolayca yapabilirsiniz. Ben ayrıca Doviz.ws’nin verdiği Dolar, Euro, Frank ve Sterlin’in alış ve satış değerlerinin olduğu bir RSS yaptım. Bunun için oluşturduğum Doviz RSS ve Doviz RSS Birleştir pipe’larını inceleyebilirsiniz. Ayrıca döviz sonuçlarını RSS ile takip etmek istersenizde aşağıdaki linki RSS okuyucunuza ekleyebilirsiniz.
Google Gears API‘nin Geolocation özelliğini kullanarak kullanıcının harita üzerinde bulunduğu noktayı yaklaşık olarak bulabiliyoruz. Gears API’nin bu özelliği ile kullanıcının bulunduğpu noktaları takip de edebiliyoruz. Bu özellik Google Code blogundaki haberden öğrendiğimize göre artık Wi-Fi noktalarını da kapsıyor. Ayrıca mobil cihazlar için de GPS’den yararlanarak kullanıcının bulunduğu noktayı belirliyor.
http://www.apidunyasi.com/ornekler/gears/geolocation.php adresinde bulunduğunuz noktayı bulan ve harita üzerinde gösteren bir uygulama görebilirsiniz. Örneği görebilmek için Apidünyası’na Gears kullanma iznini vermeniz gerekmekte.
W3 (Web’de ki standartları belirleyen organizasyon) sağladığı Validator servisleri ile HTML,RSS ve CSS dökümanlarının geçerli olup olmadığını test edip hata ve uyarı sayılarını bize veriyor. Sağladığı API ile de bu geçerlilik testlerini üçüncü parti servislerin yapabilmesine imkan tanıyor. Bizde bugün bu API servisini kullanarak herhangi bir RSS,HTML veya CSS dosyasının hata sayısını bulan kodu yazacağız.
Curl ile XML dosyasını alıp SimpleXML sınıfı ile bu XML’i döngüye çeviriyoruz.
include 'simplexml.class.php';
//dosyanın url'sini yazıyoruz
$fileurl='http://www.md-12.com';
//dosyanın türünü buraya yazıyoruz. Seçenekler:rss,html,css
$filetype='html';
//burada dosya tipine gore kullacagımız API'yi seçiyoruz
if ($filetype=="html") {
$checkurl='http://validator.w3.org/check?uri='.$fileurl.'&charset=%28detect+automatically%29&doctype=Inline&group=0&output=soap12';
}
elseif ($filetype=="rss") {
$checkurl='http://validator.w3.org/feed/check.cgi?url='.$fileurl.'&output=soap12';
}
elseif ($filetype=="css") {
$checkurl='http://jigsaw.w3.org/css-validator/validator?uri='.$fileurl.'&warning=1&profile=css21&usermedium=all&output=soap12';
}
//echo $checkurl;
//curl ile XML dosyasını alıyoruz.
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $checkurl);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$api_cikti = curl_exec($ch);
curl_close($ch);
//burada XML dosyasını döngüye çeviriyoruz
$sxml = new simplexml;
$sxml->ignore_level = 1;
$data = $sxml->xml_load_file($api_cikti,"array");
//çıkan döngüyü print_r ile inceleyebiliriz.
//print_r($data);
// sonuçları yazıyoruz
if ($filetype=="html") {
echo 'Hata sayısı : '.$data["m:markupvalidationresponse"]["m:errors"]["m:errorcount"];
echo 'Uyarı sayısı : '.$data["m:markupvalidationresponse"]["m:warnings"]["m:warningcount"];
}
elseif ($filetype=="rss") {
echo 'Hata sayısı : '.$data["m:feedvalidationresponse"]["m:errors"]["m:errorcount"];
echo 'Uyarı sayısı : '.$data["m:feedvalidationresponse"]["m:warnings"]["m:warningcount"];
}
elseif ($filetype=="css") {
echo 'Hata sayısı : '.$data["m:cssvalidationresponse"]["m:result"]["m:errors"]["m:errorcount"];
echo 'Uyarı sayısı : '.$data["m:cssvalidationresponse"]["m:result"]["m:warnings"]["m:warningcount"];
}
İddialı bir başlık gibi gözüktüğünü kabul etmekle birlikte bu yazı ile Imified API kullanarak 5 dakikada yazılanlara otomatik olarak cevap verebilecek bir bot yaratılabileceğini göreceğiz. Bu botu yaratmak için aşağıdaki adımları izliyoruz.
1. Imified.com‘a girip “Get started for free” butonuna basarak üye oluyoruz.
2. Verdiğimiz adrese gelen aktivasyon maili ile hesabımızı onaylıyoruz.
3. API dökümantasyonunu okuyarak botumuzun vereceği cevapları ayarlayan bir php dosyası hazırlıyoruz. (Burada istediğiniz dili kullanabilirsiniz.)
4. Örnek olarak sadece “merhaba” ve “nasılsın?” cümlelerine cevap dönen bir bot yapacağız. Aşağıda botu oluşturan php kodu var.
<?php
//$_REQUEST['msg'] ile bot gelen mesajı alıyor
$mesaj =$_REQUEST['msg'];
//bu bölümde botumuz gelen mesaja göre cevap veriyor
if ($mesaj=="merhaba")
{
echo 'merhaba';
}
elseif ($mesaj=="nasılsın")
{
echo 'iyidir senden';
}
else
{
echo 'buna cevap vermeye programlanmadım ne yazıkki';
}
?>
5. Botu oluşturan php dosyasını web’e atıp “New Application” bölümünden aşağıdaki gibi botumuzu yaratıyoruz.
6. Artık botumuz kullanılabilir durumda. Gmail’de botu ekleyip denemeler yapabiliriz. Bu örneği eklemek için Gmail Chat’de “Add Contact” linkine tıklayıp apidunyasiornek@bot.im ‘i chat listemize dahil ediyoruz.
7. Botumuz hemen hayata geçmediği için bir şeyleri yanlış yapmadığımızı yine Imified’ın bize sağladığı “Application Debugger” özelliği ile test ediyoruz. Tools > Debugging tools seçenekleri ile botumuzu test edebiliriz.
Resimde görüldüğü gibi botumuzla çok güzel diyalog kurulabiliyor.
Feedburner’da RSS’imize kaç kişinin üye olduğunu aşağıdaki gibi gösterebiliyoruz.
Bunu farklı şekillerde yapmak için bu rakamı Feedburner API kullanarak alabiliyoruz. Aşağıdaki örnek kodlar Simplexml sınıfı kullanarak bu işi yapmakta.
include 'simplexml.class.php';
//üye sayyısını bulacağımız rss'in linki
$feed ='RSS beslemesinin linki';
$api = 'http://api.feedburner.com/awareness/1.0/GetFeedData?uri='.$feed;
//curl ile xml dosyasını alıyoruz
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, $api);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$api_cikti = curl_exec($ch);
curl_close($ch);
//simplexml sınıfını kullanıyoruz.
$sxml = new simplexml;
$sxml->ignore_level = 1;
$data = $sxml->xml_load_file($api_cikti,"array");
//toplam üye sayısını yayınlıyoruz.
echo $data["entry"]["@attributes"]["circulation"];
Özellikle RSS’leri birleştirmek ve üzerinde değişiklikler yapmak konusunda oldukça yardımcı servis Yahoo Pipes ile dilini bilmediğimiz bir RSS’i İngilizce’ye çevirip takip edebiliyoruz. Bunun için aşağıdaki adımları uygulamalıyız.
1.Yahoo Pipes‘a giriş yapıyoruz. Girşi yaptıktan sonra üstte bulunan “Create a pipe” butonundan bir pipe oluşturmaya başlıyoruz.
2. Pipe oluşturacağımız sayfada öncelikle sol tarafta “Fetch Feed” seçeneğini sürürkleyip çalışma alanımıza bırakıyoruz. Bu örnek için ben Le’quipe’nin futbol haberlerini veren RSS’ini seçiyorum. URL bölümüne aşağıdaki linki yazıyoruz.
3. RSS’i ekledikten sonra “Operators” bölümünden BabelFish seçeneğini çalışma alanımıza sürükleyip, Fetch RSS kutusunun altındaki yuvarlak ile BabelFish’in üstündeki yuvarlağı birleştiriyoruz.
4. BabelFish kutusunda çeviri yapacağımız diller iseçiyoruz. Bu örnekte French to English ‘i seçiyoruz.
5. Babelfish’in altındaki yuvarlağı en altta bulunan “Pipe Ouput” ile birleştiriyoruz. Pipe’ı yukarıdan Save seçeniği ile kaydediyoruz. Çevrilmiş RSS’imiz servise hazır.
6. Yeni oluşturulmuş RSS’i “Run Pipe” ile çalıştırabiliriz. RSS’in adresini almak için de “More Option” menüsünden “Get as RSS” seçeneğine tıklarız.
Aşağıda ise örnek görünümü bulunmakta; Buradan RSS’in yeni halini görebilirsiniz.
–> Ekleme: Bu yazıyı yazdıktan kısa bir süre sonra Google Reader benzer bir çeviri hizmeti vermeye başladığını açıkladı. Ayrıntılar Google Reader’da RSS çevirisi yazısında…
Google Map API 2006 Haziran’ından bu yana girilen bir adresin enlem/boylam bilgilerini verebilmekteydi. Google Geo Developers Blog’da yapılan açıklamaya göre artık bu işlemin tersini de yapabilmekte. Yani Google Map’de herhangi bir noktanın veya enlem/boylam bilgilerini bildiğimiz bir noktanın adres bilgilerinide bulabileceğiz. ‘Reverse Geocoding’ denen bu işlemin canlı bir örneğini görmek için buraya tıklayabilirsiniz. Bu işlemi yapan fonksiyonun açıklaması için buraya bakabilir, öörnek kullanım kodunu da aşağıda bulabilirsiniz.
Twitter API kullanarak oluşturduğunuz profilin durumunu aşağıdaki gibi güncelleyebilirsiniz. Aşağıdaki örnek php ile yazılmış olup bağlantı için Curl kütüphanesi kullanılmıştır.