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 kaydetmek
5. 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/aybarsb
2. 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).
|
|
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.
|
|
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-posts
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
7. uygun bir hostinge atıyoruz kodları, http://friendfeed.com/api/applications şuradan girip callback url yi değiştiriyoruz.
çalışan haline şurdan ulaşabilirsiniz. http://ff-who-loves-my-posts.aybarsbadur.com/
gerisi sizin hayalgücünüze kalıyor, örneğin sizin beğendiğiniz yazıları yazanlar, sizin yazılarınızı ne kadar beğeniyor gibi uygulamalardan, takip ettiklerinizin gönderdiği videoları ayıklayan uygulamalara kadar çeşitli uygulamalar yazabilirsiniz. yukarıdaki yapıyı basit bir framework olarakta düşünebilirsiniz, tek yapmanız gereken, uygulamayı register edip, loggedin.php yi değiştirmek olacak.
kodların tamamını indirmek için, 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.
Faydalı bir yazı , ellerine sağlık
Oldukça bilgilendirici bir yazı olmuş Aybars.
Güzel bir anlatım olmuş ellerinize sağlık ilk fırsatta deniyeceğim
Yeni yazı çıkmıyo 3 gündür. Kodaman iyice boşlandı.
yorumlar için gerçekten teşekkürler, umarım işe yarar yazı olmuştur.
Ben şimdi oauth ile login yaptırdıktan sonra token, token_secret, user_name değişkenlerini alıyorum. Daha sonrasında xml ile bilgi çekmem lazım. Hangi urlye hangi değişkenleri yollayacağım. Yani bunun tüm kombinasyonlarını denedim gibi fakat bi sonuç alamadım. Mesela like bilgileri için;
http://friendfeed-api.com/v2/feed/kullanici_adi/likes?format=xml&oauth_token=blabla&token_secret=blabla şeklinde uğraşmıştım fakat sanırım yanlıış yolda ilerliyorum. Yardımlarınızı bekliyorum. Teşekkürler :)
@phaeso oauth ile login olup sonrada giden url lerle gelen cevapları yazdırdım. umarım işine yarar.
|
|
Edit: Data çekmeyi başardım tek hatam signature yollarken urlyi
"http://friendfeed-api.com/v2/feed/aybarsb/likes" şeklinde yolluyormuşum
"http://friendfeed-api.com/v2/feed/aybarsb/likes?format=xml" şeklinde yollamam gerekiomuş :) Çok teşekkür ederim.
Teşekkür ederim, artık unauthorized hatası almıyorum, şimdiki hata invalid oauth signature. 5. adımda signature oluştururken url değerini
"http://friendfeed-api.com/v2/feed/aybarsb/likes" olarak mı gönderiyorsun? Diğer değişkenlerimin doğru olduğunu düşünüyorum.
pillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.
Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.