Facebook Uygulaması (Application) Hazırlamak

Facebook Uygulaması (Application)

Özellikle son dönemdeki Facebook çılgınlığı hem kişisel hem de kurumsal anlamda herkesi içine çekmeye başladı. Bazılarımız arkadaşlarından haber almak için Facebook‘a girerken bazıları ise işin ticari kısmı ile ilgileniyor. Hangi tarafta olursanız olun, bir programcıysanız eminiz ki bir Facebook uygulaması yazmak istemişsinizdir.

Başlamak İçin Neler Gerekli?

Facebook için bir uygulama geliştirdiğinizde uygulamanızın veritabanı ve esas dosyaların sizin belirlediğiniz bir sunucuda ve adreste yayınlanır. O nedenle ilk olarak bir web adresine sahip olmanız ve uygun bir barındırma hizmeti satın almış olmanız gerekecektir. Facebook sadece sizin uygulamanızı kullanarak kullanıcılara hizmet verir, uygulamanızı barındırmaz.

Facebook Developer olma yolunda

Hesabınıza giriş yaptıktan sonra ilk olarak Developer | Facebook adresinden Developer adındaki Facebook uygulamasını kendi hesabınıza eklemeniz gerekiyor. Bu uygulama sizin farklı Facebook uygulamaları geliştirebilmeniz için gerekli olan API ve Secret Key denen bilgileri yaratmanızı sağlayacak. Developer uygulamasına hesabınıza kurduktan sonra hemen Facebook hesabınızdaki sol menüden “Developer” linkine tıklayarak söz konusu uygulamanın sayfasına gidin. Bu sayfa içerisinde “Set Up New Application” linkine tıklayarak yeni bir uygulama yaratmak için başvuruda bulunabilirsiniz. Başvuru esnasında sizden ilk olarak uygulamanıza bir isim vermeniz istenecektir. Sonrasında “Callback URL” denen bir adres girmeniz gerekecek. Başlangıç aşamasında bu adres sizin yerel makinenizdeki “localhost” gibi bir adres olabilir. Uygulamanızı geliştirdiğiniz sürede kendi makinenizde IIS üzerinde sunmanız gerekecek. Geliştirme süreci sonlandığında uygulamanızı internete koyduğunuzda Callback URL’i değiştirmeniz yeterli olacak.

FBML mi IFRAME mi?

Uygulama başvurunuz esnasında karşınıza gelecek sorulardan belki de en can alıcısı FBML mi yoksa IFRAME uygulaması mı geliştirecek olmanızdır. İlk olarak FBML kısmını bir açıklayalım. Açılımı Facebook Markup Language olan tamamen Facebook’a özel bir uygulama geliştirme dili diyebileceğimiz bu sistem ile çok hızlı bir şekilde standart uygulamalar geliştirebilirsiniz, fakat maalesef özelleştirilme noktasında bazı sıkıntılar yaşamanız olasıdır. Siz sadece bir MarkUp Language ürettiğiniz için sayfalarınızın tasanmı otomatik olarak Facebook tarafından yaraülır. FBML ayrıca kullanıcıların profillerine yerleştirilen bilgilerin de formatı olduğu için bir IFRAME uygulaması da geliştirseniz profilleri ancak FBML ile oluşturabilirsiniz.

FBML ile ilgili detaylı dokümantasyonları

wiki.developers.facebook.com/index.php/FBML adresinden edinebilirsiniz.

IFRAME uygulamalarıysa geliştirilmesi çok daha zor olmakla beraber aslında çok daha esnektirler.

Facebook sizin geliştirdiğiniz uygulamayı bir IFRAME içerisinde yükler ve bu şekilde çalıştırır. Bu teknikte Session yönetimi çok daha karışıktır. Biz yazımızda IFRAME seçeneğini seçerek devam edeceğiz.

Canvas Page URL kısmına yazacağınız adres uygulamanızın çalışacağı Facebook adresi olacaktır.
Site Nav” linkine uygulamanızın ayarlarının yer alacağı ve kullanıcıların sol menülerinden tıklayarak yönlenecekleri adresi yazmanız gerekecek. Bu adres Canvas Page adres ile aynı yerde olmalı, yerel adres olmamalı. Son olarak başvuru sayfasında “Can your application be added on Facebook” seçeneğini de seçerek işlemi tamamlayabilirsiniz.

Facebook uygulamanızın başvurusu sonlanınca uygulamanız için bir API KEY ve bir de Secret Key verilecektir. Bu değerleri yarattığımız uygulamanın içerisinde kullanmamız gerekecek.

Gerekli yüklemeler

Visual Studio ile beraber Facebook uygulamaları geliştirebilmek için birkaç seçenek var. Bunlardan ilki Facebook.NET kütüphanesi, CodePlex – Open Source Project Hosting adresinden edinebileceğiniz kütüphane ile kolaylıkla FBML veya IFRAME uygulamaları geliştirebilirsiniz.

Özellikle bu kütüphaneyle beraber gelen sunucu kontrolleri yazılım geliştirme sürecini ciddi şekilde kısalıyor. Diğer yandan Facebook API bilgileri kapsamında daha güncel olan ve tavsiye edilen bir diğer kütüphane de Facebook Developer Toolkit. Bu kütüphaneyi de Facebook Developer Toolkit – Home adresinden bilgisayarınıza indirebilirsiniz. Biz örneğimizde Facebook Developer Toolkit kullanacağız.

Facebook Web Application yaratıyoruz

Tüm yüklemeler tamamlandıktan sonra Visual Studio açıldığında karşımıza Facebook Web Application seçeneği geliyor. Bu seçenek ile yeni bir web uygulaması yarattığımızda artık Facebook dünyasına adım atmış oluyoruz. İlk olarak yapmamız gereken uygulamamızın tüm ayarların bulunacağı ana sayfayı hazırlamak. Bu ana sayfa aynı anda uygulamamızın Site Nav ayarında belirlemiş olduğumuz ve kullanıcıların sol menülerinden ulaşacakları sayfa olacak. Doğal olarak bu sayfa açıldığında FacebBook ile bizim uygulamamızın arasındaki “Authentication” işlemini de yapması gerekecek. Tüm bu işlemler için gerekli kodlar zaten FacebookWeb Application proje şablonu ile beraber geliyor. Söz konusu proje şablonu içerisinde ana sayfanın kodunda yer alan aşağıdaki kodların Facebook’tan alınan KEY ve SECRET bilgileri ile değiştirilmesi gerekiyor.

Hazırladığınız bu web formu normal bir ASP.NET sayfası programlarken gibi hazırlayabilirsiniz. Bazı durumlarda Facebook ile ASP.NET arasında Session kaybı yaşanabiliyor. Böyle durumları engellemek için ASP.NET’te PreRender event’ını Over-Ride ederek kendi event’ımızı yazmamız gerekiyor. Aşağıdaki kod ile Header bilgisini değiştirerek sorunu gideriyoruz.

Protected Overrides Sub OnPreRender(ByVal e As EventArgs)
Response.AppendHeader("P3P", "CP=""CAO PSA OUR""")
MyBase.OnPreRender(e) End Sub

Uygulamanız çalışırken kendisine bağlı kullanıcı ile ilgili verileri veritabanma kaydediyor olacak. Kullanıcıyı yakalamak için Facebook.Components.FacebookService nesnesini kullanabilirsiniz.

Bu nesneye ait UserID metodu kullanıcının Facebook’daki ID bilgisini verecektir. Bu bilgi üzerinden gerekli ayarları kendi veritabanınıza kaydedebilirsiniz.

Uygulamanızın yapması gereken önemli şeylerden biri de kullanıcınızın yaptığı şeylerden insanları haberdar etmektir. Bunun için söz konusu kullanıcının haberler listesine kendisiyle ilgili haberleri eklemeniz gerekecektir.

Private FBService As Facebook.Components.FacebookService=
New Facebook.Components.FacebookService()

PublishStory metodu ilk parametre olarak gönderilecek metin mesajını alıyor, ikinci olarak da mesajın yanından gösterilecek resmin adresini istiyor.

Dim PhotoList As New System.Collections.ObjectModel.Collection(Of Facebook.Entity.Publishlmage)
PhotoList.Add(New Facebook.Entity.PublishImage("http://localhost:2008/images/minikare.gif", "http://www.link.com"))
FBService.PublishStory("MESAJ"), PhotoList)

Yukarıdaki şekliyle mesajla gösterilebilecek fotoğrafları ayarladıktan sonra uygun mesajı da ekleyerek yayınlayabiliyoruz. Mesajın yanma eklenen her resmin bir de linki olmak zorunda.

Görüntüleri düzenlemek

Kullanıcıların profillerinde gösterilecekleri düzenlemek için FBML kullanmak durumundayız. Uygun FBML kodunu düzenledikten sonra sayfamızdaki Facebook.Components.FacebookService nesnesinin SetFML metodu ile gönderiyoruz.

FBService.SetFBML(FBMLCode)

Yukarıdaki kod ile tanımlayabileceğimiz FBML kodunu hazırlarken özellikle dikkat etmemiz gereken bir nokta var. Uygulamamız Facebook sayfalarında geniş veya dar kolona yerleştirilmiş olabilir. Bu farklı konumlar için farklı tasarımlar yaparak FBML kodları içerisinde yerleştirilmeli.

Facebook uygulamanızı geliştirirken, değişiklikler yaparken bazen yapmış olduğunuz değişiklikler anında Facebook ortamına yansımadığını görebilirsiniz. Bu durumlarda ısrarcı olmayıp beklemekte fayda var. Yoğunluk nedeniyle bazı işlemlerin geç sonlanması olağan bir durum olarak öngörülebilir.
Wide tagları arasında yer alan tasarım geniş ko-lonlardaki uygulamamıza, narrow tagları arasında yer alan tasarım dar kolonlardaki uygulamamıza yansıyacaktır.

Yayın zamanı

Tüm düzenlemeleri yaparak uygulamamızı tamamladıktan sonra sıra geldi yayına geçmeye Artık uygulamamıza ait ASP.NET sitesini uygun bu barındırma alam satın alaıak internete koymamız geıekıyoı Sor konusu sitenin adresini de Facebook pı of ilimizdeki Developer uygulaması aracılığı ile uygulamamızın Callback URL kısmına yazmamız şart işlemleı tamamlandıktan sonra artık Facebook uygulamamızı herkes kullanabilir.

NOT: Facebook uygulamanızı geliştirirken, değişiklikler yaparken bazen yapmış olduğunuz değişiklikler anında Facebook ortamına yansımadığını görebilirsiniz. Bu durumlarda ısrarcı olmayıp beklemekte fayda var. Yoğunluk nedeniyle bazı işlemlerin geç sonlanması olağan bir durum olarak öngörülebilir.

Hazırlayan : Daron YÖNDEM / PCNet