Facebook üzerinde uygulama geliştirme
Biraz programcılık bilgisi ve deneme ile ile Facebook'ta kendi uygulamanızı kolayca dağıtabilirsiniz
Facebook uygulaması, çoğunlukla başkaları tarafından yazılmış olan eklentiler. Ne ararsan bulabiliyorsun, nerdeyse yok yok. Oyunlardan fan kulüplerine, fotoğraf albümlerinden bilgilendirme uygulamalarına kadar binlerce çeşit bulunuyor. Bu uygulamaları bir kaç fare tıklaması ile ekleyebiliyor ve kullanabiliyorsunuz. Bu uygulamaların pek çoğu sizin profil sayfalarınız ve arkadaşlarınız ile etkileşimde bulunuyor.
Facebook uygulamalarının yakın bir gelecekte büyük bir pazarlama gücü olacağını tahmin etmek çok da zor değil. Şimdiden daha yeni çıkacak filmlerin, kitapların uygulamalarına rastlamak mümkün. Harry Potter fanlarının etkisi halen sürüyor.
Facebook için uygulama geliştirmek çok da zor değil. Eğer biraz web yazılımları konusunda bilginiz varsa, biraz da öğrenmeye hevesiniz, uykusuz ama keyifli geçirilecek bir kaç gece içinde ana fikri çözmeniz oldukça basit. Facebook'da bu konuda oldukça cömert davranmış. Uygulama geliştirme için hazırladıkları API hakkında oldukça kapsamlı bir dokümantasyon, çeşitli diller için kod örnekleri, bir tartışma platformu ve bir wiki hazırlamışlar.
Uygulama geliştirmek isteyen herkesin öncelikle Developer adlı uygulamayı profillerine yüklemeleri gerekiyor. Bu uygulama ile yeni uygulamanızı sisteme kaydedebilir ve gerekli API anahtarlarını alabilirsiniz. Dokümantasyona, çeşitli diller için istemci kütüphanelerine ve kod örneklerine ise Facebook Developer sayfasından ulaşabilirsiniz. Daha fazla bilgi ve örnekler ise Developer Wiki sayfasında bulunabiliyor. Facebook resmi olarak PHP (4 ve 5) ve Java API kütüphanelerini detekliyor. Fakat siteden Actionscript, Cocoa, ColdFusion, .NET, Perl, Phyton, Ruby ve VB.NET kütüphanelerine ulaşmak mümkün.
Temel uygulama geliştirme teknolojileri
Uygulama platformunu oluşturan üç temel teknoloji bulunuyor. Kısaca bunlardan bahsedelim:
Ara Yüz (API) : Facebook sunucuları ile sizin sunucularınız arasındaki iletişim API ile sağlanıyor. Facebook API Rest tabanlı bir iletişim metodu kullanıyor. Yani, Facebook'a erişebilmek için yazılımınızın Facebook sunucularına HTTP POST veya GET isteğinde bulunması gerekiyor. API kullanarak kimlik denetimini ve Facebook'da yer alan arkadaş, profil v.s. bilgilerine erişimi gerçekleştiriyorsunuz.
Sorgu (FQL) : FQL Facebook'ta yer alan ve API ile ulaşabileceğiniz bilgileri SQL'e benzeyen bir dille kolayca sorgulamanıza imkan veriyor.
Biçimleme Dili (FBML) : HTML'e benzeyen, aslında pek çok HTML komutunun yanı sıra bir takım Facebook'a özel öğelerin bulunduğu bir biçimleme dili. Bu dili kullanarak kullanıcılarınıza alışkın oldukları bir ara yüz tanımlayabiliyor ve pek çok Facebook özelliklerine kolaylıkla ulaşabiliyorsunuz.
Uygulama mimarisinin temelleri
Basitçe uygulama mimarisinden de bahsetmek istiyorum. Bu konuyu bulmak biraz zamanımı aldığı için başta epeyce bocalamıştım. Çünkü pek alışık olmadığımız bir mimarisi var. Öncelikle uygulamanız kendinize ait bir sunucu üzerinde çalışıyor. Bunun için kullanacağınız dili destekleyen bir servis sağlayıcısına ihtiyacınız var. Eğer halen bir sunucu barındırma hizmetiniz yoksa size uzun zamandır kullandığım ve memnun olduğum Hostgator adlı firmayı önerebilirim.
Uygulamanızın Facebook'ta çalıştığı ana kısma canvas adı veriliyor. Kullanıcılarınız uygulamanıza üye olduğunda ve her girişlerinde bu canvas sayfasına geliyor. Canvas esasında Facebook'da bulunan ve sizin uygulamanızı çevreleyen bir sayfa.
Kullanıcınız uygulamanıza girdiğinde kullanıcınızın tarayıcısı Facebook sunucularına bir istekte bulunuyor. Facebook bu isteği geri planda sizin sunucularınıza yolluyor. Sunucunuzda çalışan yazılımınız API ile Facebook sunucularına bağlanıp kimlik sorgulaması, kullanıcı sorguları v.b. gibi gerekli işlemleri yaptıktan sonra FBML oluşturarak bunu ilk sorguya yanıt olarak Facebook sunucularına gönderiyor. Facebook ise FBML formatındaki bu yanıtınızı işleyip kullanıcının tarayıcısına gönderiyor.
Aslında bu işlem API kullanıcıları için çok da yabancı bir yöntem değil. Sayfada bulunan bir DIV elementinin içini AJAX ile doldurmaya benziyor. Farkı, sizin göndermiş olduğunuz FBML Facebook sunucuları tarafından işlenerek ve canvas içine yerleştirilerek kullanıcıya gönderiliyor. Buradaki "işleme" kelimesinin altını çizmek istiyorum. Bu işlem sırasında özel FBML kodları HTML'e dönüştürüldüğü gibi yasaklı olan bazı elementler de çıkarılıyor. Yakın zamana kadar bu yasaklı elementlere Javascript'te dahildi. Fakat yakın zamanda çıkarılan FBJS ile javascript kısıtlı da olsa destekleniyor. Bu sayede artık yazılımınızda AJAX kullanmanız mümkün. FBJS kullanmak isteyenlere bir uyarı, javascript'in kötüye kullanılabilmesi nedeni ile kullanılan FBJS pek çok Javascript özellik ve yöntemlerini değiştirerek kullanıyor. Bu nedenle oldukça dik bir öğrenme eğrisine sahip. Özellikle DOM nesnelerinin işlenmesinde tüm özellikler yerlerini metotlara bırakmışlar. Bir çok metot ise güvenlik nedeniyle kullanılamıyor. Bu konudaki detaylı bilgiye FBJS sayfasından ulaşabilirsiniz.
Uygulamanızdan kullanıcı profiline erişim ise daha farklı bir yöntem kullanıyor. Profil sayfaları Facebook tarafından ön belleklendiği için, bu bilgileri API yardımı ile sunucuya itmeniz (Push) gerekiyor. Diyelim uygulamanız kullanıcının sayfasına bir kutu ekleyerek içinde kullanıcı ile ilgili bir takım bilgiler gösterecek. Profil yüklenirken Facebook, sunucularının sizin sunucularınıza bağlanarak bu bilgiyi alması yerine, daha önce uygulamanızın Facebook'a gönderdiği FBML bloğunu kullanıyor. Bu mimarinin, her ne kadar alışık olunmasa da, belirgin avantajları var. Hem her profil ziyaretinde sizin sunuculara istekte bulunarak yük bindirmiyor, hem de profilin daha hızlı yüklenmesini sağlıyor. Tabi ki dezavantaj olarak profilde yer alan bilgilerin değişmesi gerektiğinde uygulamanızın API ile profili güncellemesi gerektiğini gösterebiliriz. Neyse ki çoğu uygulamada bu uygulama sayfasından tetikleniyor. Geri kalan kısım içinse düzenli olarak güncelleme yapan bir uygulama mimarisi geliştirmeniz gerekiyor.
Profil sayfalarında Javascript kullanmak isteyenlere bir uyarı daha. Profil sayfalarında Javascript çok daha kısıtlı olarak izin verilmiş. Bu yüzden mecbur kalmadıkça kullanmamanızı tavsiye ederim.
Tolga Orhon
CHIP Online