bu yazıda friendfeed api‘sini kullanarak php ile basit bir uygulama geliştireceğiz. asıl amacımız bu apiyi kullanarak neler yapılabileceğinin ispatından çok, apinin nasıl çalıştığı, OAuth mekanizmasının nasıl işlediğine bakmak, zira twitter’da api için, OAuth kullanıyor, başka sitelerde de çok benzeri mekanizmalar kullanılıyor.öncelikle ne yapacağımıza karar verelim, basit bir uygulama olması için, sizi takip eden kişilerden kaçının sizin son gönderdiğiniz 500 yazıya (post a) like verdiğini (beğendiğini) çıkartan bir uygulama yapalım – daha sonra isterseniz dallanıp budaklandırsınız. uygulamamızın son hali şuna benzeyecek.

gerekli adımlar :1. bir adet friendfeed hesabı2. proje dizini oluşturmak.3. friendfeed apisi için yazılmış php librarysi – hazır bir library kullanmamızın sebebi, vakit kazanmak ve konuyu dağıtmamak aslında, isterseniz elle kendinizde yazabilirsiniz, zaten library curl ile istek gönderen fonksiyonlar sadece, ama fonksiyonları derli toplu.4. uygulamamızı friendfeede kaydetmek5. kendi makinemizde, bir virtual host yaratmak.6. projeyi kodlamak.7. projeyi yayınlamak.şimdi bu adımları detaylandıralım.1. eğer hesabınız yoksa, http://friendfeed.com dan bir hesap alıp, hemen bir kaç kişiyi takip etmeye başlayın (örn. beni ekleyebilirsiniz 🙂 http://friendfeed.com/aybarsb2. ben /www/ff-who-loves-my-posts diye bir dizin oluşturdum.3. library şurda, http://code.google.com/p/friendfeed-api-v2-php/downloads/list , yalnız bu yazının yazıldığı sırada download linki yoktu, kendi proje dizininize svnden checkout yapabilirsiniz (yada yazının sonundaki linkten bütün projeyi zipli olarak indirebilirsiniz, içinden çıkacak libraryde).svn checkout http://friendfeed-api-v2-php.googlecode.com/svn/trunk/ friendfeed-api-v2-php-read-only
4. şurdan http://friendfeed.com/api/register a ilgili alanları dolduruyoruz. burda önemli olan nokta, OAuth callback url kısmı, buraya şimdilik kendi makinenizdeki sanal sunucuyu veriyorsunuz, örneğin, http://localhost:8000/afterAuth.php gibi, örneğin bende apachede isme göre virtual server olduğu için bu, http://ff-who-loves-my-posts:8000/afterAuth.php şeklinde.application type için browser diyoruz, feedback group önemli değil, application name ve web site uygulamamız açısından önemli değil.Register application dediğimizde, bize aşağıdaki gibi keyleri veriyor, bunları not alıyoruz bir yere.Consumer keycd5f212e4a35d24fe1aa97e53fd4405a5524daaConsumer secret11e938539f524595a643044f47ac0706c034c4fa7bcf0571ecd4d3b29Callback URLhttp://ff-who-loves-my-posts/afterAuth.phpRequest token urlhttps://friendfeed.com/account/oauth/request_tokenAccess token URLhttps://friendfeed.com/account/oauth/access_tokenAuthorize URLhttps://friendfeed.com/account/oauth/authorize
5. ben apachede virtual hostu şöyle yaratıyorum, artık siz kendi makinenizde nasıl yapıyorsanız./etc/apache2/sites-enabled/ff-who-loves-my-postsServerName ff-who-loves-my-postsDocumentRoot “/www/ff-who-loves-my-posts”DirectoryIndex index.phpAllowOverride AllAllow from All


6. projeyi kodlamak, artık yazıyı buraya kadar okumanızın sebebine geliyoruz şimdi.index.php, sadece friendfeed e authentice olmak için bir butonumuz var.
FriendFeed who likes my posts.
conf.php, buraya consumer secret ve consumer key leri giriyoruz, her dosyada uğraşmayıp include edebilmek için. ff_request_oauth.php, buradan tokenleri verip friendfeedden bir login/auth urlsi alıp, kullanıcıyı oraya yönlendiriyoruz.fetch_oauth_request_token();$authurl = $ff->get_oauth_authentication_url($tokens);session_start();$_SESSION[‘oauth_token_secret’] = $tokens[‘oauth_token_secret’];$_SESSION[‘oauth_token’] = $tokens[‘oauth_token’];header(‘Location: ‘.$authurl); afterAuth.php, login olan kullanıcı buraya geliyor, buradan da, asıl işin yapılacağı loggedin.php ye gönderiyoruz. isterseniz bu adımı atlayıp direk, işi yapacak kodları da buraya yerleştirebilirsiniz, ama bir hata çıkarsa burada yakalaması daha kolay olacaktır.fetch_oauth_access_token( array(‘oauth_token’=>$s, ‘oauth_token_secret’=>$_SESSION[‘oauth_token_secret’] ) );$_SESSION[‘authenticated’] = 1;$_SESSION[‘oa’] = $p;header(‘Location: /loggedin.php’);} catch (Exception $e){echo ‘oops, sorry an error occured’;}?>hello ; loggedin.php, artık kullanıcı friendfeed üzerinden login olduğuna göre, veri çekip istediğimiz işleri yaptırabiliriz. yaptığımız iş çok basit burada, kullanıcının kendi feedindeki son 500 girişi çekip, bunlara verilen like ları bir arrayde topluyoruz, bu arrayi sıralatıyoruz – en fazla beğenenler yukarıda çıksın istiyoruz. sonrada sayfada gösteriyoruz. count($b)) ? -1 : 1;}$ff = new FriendFeed($key, $secret, array(‘oauth_token’ => $_SESSION[‘oa’][‘oauth_token’], ‘oauth_token_secret’ => $_SESSION[‘oa’][‘oauth_token_secret’]));$feed = $ff->fetch_feed(‘me’,array(‘num’=>500));$alllikes = array();foreach($feed->entries as $f){if ($f->likes){foreach($f->likes as $like){if (!isset($alllikes[$like->from->id])){$alllikes[$like->from->id] = array();}$alllikes[$like->from->id][] = $like;}}}usort($alllikes, ‘sort_likes’);?>FriendFeed – Application – ff-who-loves-my-posts


$l){?>http://ff-who-loves-my-posts.aybarsbadur.com/ff-who-loves-my-posts.zip (not, zipteki ve canlı hali arasındaki tek fark, zipteki conf.php deki, key ve secret uydurmadır, çalıştırmak için kendi uygulamanızı register etmelisiniz.)şimdilik bu kadar, yazıyı buraya kadar okuduğunuz için teşekkürler.