ASP.NET MVC 4.0 – FaceBook Nesnesi
Web sitelerinde kullanıcı bazlı kolaylık ve görsellik sağlayan hem de biz yazılımcılar için programatik esneklik ve bir o kadar da hit kazandıran FaceBook uygulamaları vazgeçilmez bir tercih oldu.Asp.NET MVC mimarisiyle Microsoft Web Helper kütüphanesi sayesinde FaceBook uygulamalarını en verimli şekilde kullanabiliriz.Lakin bildiğiniz gibi Microsoft Web Helper kütüphanesi MVC Framework’ünde varsayılan olarak gelmemektedir.Asp.NET MVC – Microsoft Web Helper Paketi Yüklenmesi başlıklı yazımda da bahsetmiş olduğum gibi Microsoft Web Helper kütüphanesini projenize entegre etmeniz gerekmektedir.
İlk olarak LikeButton özelliğini irdeleyelim.
LikeButton
Verilen Web adresini FaceBook üzerinden beğenmek için kullanılır.
Prototipi aşağıdaki gibidir.
Facebook.LikeButton(string href,
string buttonLayout,
bool showFaces,
int width,
int height,
string action,
string font,
string colorScheme,
string refLabel);
Prototipte parametrelerin ne işe yaradıklarından bahsedelim.
buttonLayout = Beğenme butonuyla ilgili özellikleri belirler.Üç tip özelliği vardır.
“standard” : Yazı butonun sağında ve beğenen arkadaşların profil fotoğrafları ise butonun altında bulunur.Minimum genişlik 225 piksel olmakla beraber, varsayılan genişlik 450 pikseldir.Yükseklik değeri ise fotoğrafsız 35 piksel, fotoğraflı olarak 80 piksel değerlerindedir.
“button_count” : Sadece toplam beğenme sayısı butonun sağında bulunmaktadır.Genişlik değeri minumum ve varsayılan olmak üzere 90 pikseldir.Yükseklik değeri ise 20 pikseldir.
![]()
“box_count” : Sadece toplam beğenme sayısı butonun üstünde bulunmaktadır.Genişlik değeri minumum 55 piksel, varsayılan değer olarak 90 pikseldir.Yükseklik ise 65 pikseldir.
showFaces =Sizin ve beğenen arkadaşlarınızın profil fotoğraflarının butonun altında görüntülenip görüntülenmemesini sağlar.Tabi eğer buttolLayout özelliği ‘standard’ olarak set edildiyse.
action = Buton tıklandığı anda tetiklenecek olayı belirler.’like(beğen)’ veya ‘recommend(paylaş)’ değerlerini alır.
colorScheme = Butonun rengini belirler.’light’ veya ‘dark’ değerlerini alabilir.
Örnek olarak http://www.gencayyildiz.com sitesine beğen butonu oluşturalım.
@using Microsoft.Web.Helpers;
@Facebook.LikeButton("http://www.gencayyildiz.com","box_count",colorScheme:"dark");
Action paremetresini kullanarak paylaş butonu oluşturalım.
@using Microsoft.Web.Helpers;
@Facebook.LikeButton("http://www.gencayyildiz.com","box_count",colorScheme:"dark",action:"recommend");
ActivityFeed
Verilen web sitesinin, FaceBook üzerindeki eklentilerini listeletir.Prototipi aşağıdaki gibidir,
ActivityFeed( string site, int width, int height, bool showHeader, string colorScheme, string font, string borderColor, bool showRecommendations);
Şimdi parametrelerin ne işe yaradığından bahsedelim.
showRecommendations = Etkinliklerde yapılan yorumların sayısını görüntüler.
borderColor = Etkinliklerin gösterileceği tablonun kenar rengini belirlememize yarar.
Örnek olarak önceden üzerinde çalıştığım www.e-kittap.com sitesinin etkinliklerini görüntületelim.
@using Microsoft.Web.Helpers;
@Facebook.ActivityFeed("http://www.e-kittap.com", borderColor: "Red");
Ekran görüntüsü aşağıdaki gibi olacaktır.

Initialize
Bu metod Asp.NET MVC mimarisinde, FaceBook platformunda yorum ve kullanıcı bilgilerine ulaşma gibi işlemlerde bağlantı değerleri olan appId ve appSecret değerlerini tutmaktadır.Bu yüzden çok önemlidir.
appId ve appSecret değerleri nedir diye sorarsanız eğer, gelişmiş FaceBook uygulamalarından yararlanmak istiyorsanız eğer, FaceBook sistemine uygulama geliştiricisi olarak kayıt olmamız gerekmektedir.İşte bu kayıt neticesinde bizlere FaceBook tarafından verilen appId ve appSecret değerleri tarafından uygulamamızı FaceBook ile bağdaştırabilir ve işlemlerimizi gerçekleştirebiliriz.
FaceBook platformunda uygulama geliştirici nasıl olunur?
Evet asıl yazının sıkıcı ve bir o kadar zahmetli yanı bu olsa gerek.Ancak hiç tereddüt etmeden sizlere uygulama geliştiricisi olmanın yollarının satır satır anlatacağım.
Öncelikle uygulama geliştiricisi olmak için https://developers.facebook.com/setup adresine girip appID ve appSecret değerlerimizi almalıyız.
Günümüzde her 10 kişiden 9 unun FaceBook profili var olduğundan sizlerinden profilinizin var olduğunu varsayıyorum.FaceBook profilinize kullanıcı adı ve şifreniz ile giriş yaptıktan sonra yukarıdaki bağlantıyı açınız.Karşınıza aşağıdaki gibi bir sayfa gelecektir.
Burada karşımıza çıkan pencerede ki, “Uygulama Adı” alanına, uygulamamıza vereceğimiz isim ve “Uygulama Ad Alanı” alanına da, uygulamamızın URL’deki ismini (www.facebook.com/uygulamaAdi gibi) veririz.Lakin buradaki bilgileri doldururken sadece “Uygulama Adı” yazan alanı doldurmanızı diğerini boş bırakmanızı tavsiye ederim.
Bu işleme “Devam” dedikten sonra karşımıza aşağıdaki gibi bir pencere gelecektir.
Burada ki güvenliği doğruluyoruz ve “Devam” diyoruz.
Yaptığımız bu işlemler sonunda aşağıdaki gibi bir sayfa açılıyor.
Bu sayfada sol taraftan oluşturduğumuz uygulamayı seçiyoruz ve yukarıdaki görüntüde gördüğünüz gibi “Ayarları Düzenle” isimli linke tıklıyoruz.
Açılan sayfada gördüğünüz gibi uygulamamızın App ID ve App Secret değerlerin ulaşmış bulunmaktayız.
Şimdi bu Initialize metodunu kullanabileceğimiz alanlardan bahsedelim.
Comments
Sitemizde yayınlanan bir yazı ya da başka bir şey için FaceBook üzerinden yorum yapılmasını sağlar.
Örnek olarak aşağıdaki kod bloğunu inceleyiniz.
@using Microsoft.Web.Helpers;
@{
Facebook.Initialize("126301***", "564254a25d***");
}
@Facebook.GetInitializationScripts();
@Facebook.Comments();
Gördüğünüz gibi Initialize metodunu bu şekilde burada kullanmış olduk.GetInitializationScripts metodu ise FaceBook uygulamalarında JavaScript kodlarını çalıştırmamıza yarar.
Ekran görüntüsü aşağıdaki gibi olacaktır.

LoginButtonTagOnly
Web siteniz üzerinden FaceBook hesabınıza girmenize yarayan metoddur.
Prototipi aşağıdaki gibidir.
LoginButtonTagOnly( string buttonText, bool autoLogoutLink, string size, string length, string onLogin, bool showFaces, string extendedPermissions );
Parametreleri inceleyelim.
autoLogoutLink = Profil hesabına giriş işlemi yapıldıktan sonra “Logout” butonunun gösterilip gösterilmeyeceğini belirler.
showFaces = FaceBook hesabına girenin ve o kişinin arkadaşlarının profilinin gösterilmesine yarar.
onLogin = Profil hesabına giriş yapıldıktan sonra yapılacak işlem belirlenir.Örnek olarak, giriş yapıldıktan sonra sitenizin FaceBook fan sayfasına yönlendirme yapabilirsiniz.
extendedPermissions = FaceBook’ta ki arkadaşlarımızın ve diğer kullanıcıların, FaceBook profilimizde hangi bilgilere erişebileceğini belirleriz.Read Permissions, Write Permissions ve Page Permissions olmak üzere üç tip erişim izni mevcuttur.Bunlar sırasıyla aşağıdaki tablolarda verilmiştir.
| Read Permissions | ||
| User Permission | Friends Permission | Açıklama |
| user_about_me | friends_about_me | Profildeki “Bilgiler” alanına erişim sağlar. |
| user_activities | friends_activities | Profildeki “Yakınlardaki Hareketler” alanına erişim sağlar. |
| user_birthday | friends_birthday | Profildeki doğum tarihine erişim sağlar. |
| user_checkins | friends_checkins | Yetkili kullanıcının ya da arkadaşlarımızın belirlediği kişilere erişim sağlar. |
| user_education_history | friends_education_history | Profildeki eğitim durumuna erişim sağlar. |
| user_events | friends_events | Profildeki “Etkinlikler” bölümüne erişim sağlar. |
| user_groups | friends_groups | Profildeki grupların listesine erişim sağlar. |
| user_hometown | friends_hometown | Profildeki memlekete erişim sağlar. |
| user_interests | friends_interests | Profildeki “İlgilendikleri” alanına erişim sağlar. |
| user_likes | friends_likes | Beğenilen sayfa, etkinlik vs. listesine erişim sağlar. |
| user_location | friends_location | Geçerli konum bilgisine erişim sağlar. |
| user_notes | friends_notes | Profildeki “Notlar” alanına erişim sağlar. |
| user_online_presence | friends_online_presence | Kullanıcının online – offline durum bilgisine erişim sağlar. |
| user_photo_video_tags | friends_photo_video_tags | Kullanıcı tarafından etiketlenmiş olan fotoğraf ve video bilgilerine erişim sağlar. |
| user_photos | friends_photos | Kullanıcı tarafından yüklenmiş olan fotoğraflara erişim sağlar. |
| user_relationships | friends_relationships | Profildeki “İlişki Durumu” alanına erişim sağlar. |
| user_relationships_details | friends_relationships_details | Profildeki “İlişki Durumu” alanının detaylarına erişim sağlar. |
| user_religion_politics | friends_religion_politics | Profildeki “Siyasi Görüş” alanına erişim sağlar. |
| user_status | friends_status | Kullanıcının durumu ile ilgili son mesaja erişim sağlar. |
| user_videos | friends_videos | Kullanıcı tarafından yüklenmiş olan videolara erişim sağlar. |
| user_website | friends_website | Profildeki web adresine erişim sağlar. |
| user_work_history | friends_work_history | Kullanıcının çalışma geçmişine erişim sağlar. |
| user_email | Ulaşılamaz | Kullanıcının E-Posta adresine erişim sağlar. |
| user_friendlist | Ulaşılamaz | Kullanıcının arkadaş listesine erişim sağlar. |
| user_insights | Ulaşılamaz | FaceBook istatistik servisinin sağladığı verilere erişim sağlar. |
| user_mailbox | Ulaşılamaz | FaceBook gelen mail kutusuna erişim sağlar. |
| user_requests | Ulaşılamaz | Kullanıcının arkadaşlık isteklerine erişim sağlar. |
| user_stream | Ulaşılamaz | FaceBook haber kaynağı içerisindeki verilere erişim sağlar. |
| user_login | Ulaşılamaz | Kullanıcın FaceBook chat uygulaması için oturum açabilmesini sağlar. |
| user_management | Ulaşılamaz | FaceBook reklamları ile ilgili api’leri yönetebilmeyi sağlar. |
| Write Permissions | ||
| Permission | Açıklama | |
| publish_stream | Uygulamanızda arkadaşlarınızın gönderdiği yorumlara, beğendikleri ya da paylaştıkları içeriklere erişim sağlar. | |
| create_event | Uygulamanızın kullanıcılar adına etkinlikler oluşturmasını ve etkinlikler üzerinden düzenleme yapmasını sağlar. | |
| rsvp_event | Uygulamanızın kullanıcılar adına etkinlikler için katılım durumu bağlantısı ekleyebilmesini sağlar. | |
| sms | Uygulamanızın kullanıcıya sms mesajları gönderebilmesini ve kullanıcıdan gelen mesajları yanıtlayabilmesini sağlar. | |
| offline_access | Uygulamanızın kullanıcı adına herhangi bir zamanda, yetki verilen istekleri gerçekleştirmesine olanak sağlar. | |
| publish_checkins | Uygulamanızın kullanıcı adına, erişim sağlanabilecek kişileri belirlemesini sağlar. | |
| manage_friendlists | Uygulamanızın kullanıcının arkadaş listelerini oluşturabilmesini ve bu listeler üzerinde düzenlemeler yapabilmesini sağlar. | |
| Page Permissions | ||
| Permissions | Açıklama | |
| manage_pages | Uygulamanızın sayfalar üzerinde yönetici seviyesinde işlem yapabilmesi için ‘access_tokens‘ almasını sağlar.Bu izin ‘Graph API‘ ile uyumludur. | |
| Bu tabloyu bize “Asp.NET MVC 4” isimli kitabında sundukları için Volkan Aktaş ve Tahsin Sevinç’e kendim ve okuyucularım adına teşekkürlerimizi sunarım. | ||
Şimdi örnek olarak LoginButtonTagOnly metodunu kullanarak kendi web projemiz üzerinden FaceBook hesabımıza giriş yapılışını görelim.
@using Microsoft.Web.Helpers;
@{
string URL = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
//Bulunulan sayfanın URL bilgisi.
Facebook.AppId = "126301***";
Facebook.AppSecret = "564254a***";
}
@Facebook.GetInitializationScripts();
@Facebook.LoginButtonTagOnly("FaceBook'a Giriş Yap", true, "long", "shor", "loginRedirect('" + @URL + "')", true, "email");
LiveStream
Bu metod sayesinde sitemizi ziyaret eden kullanıcıların yorum gönderebilmelerini ve etkinlikleri paylaşabilmelerini sağlayabiliriz.
Prototipi aşağıdaki gibidir,
LiveStream( int width, int height, string xid, string viaUrl, bool alwaysPostToFriends );
Bazı parametrelerin bahsedersek eğer,
xid = Bir sayfada birden fazla LiveStream metodu çalışıyorsa eğer, her biri birbirinden benzersiz xid değeri alır.
viaUrl = Uygulamanın üzerine tıklandığında yönlendirilecek olan bağlantı belirtilir.Eğer belirtilmezse varsayılan olarak o andaki URL adresi kullanılır.
alwaysPostToFriends = Kullanıcıların yazdıkları mesajlarının kendi profillerinde görüntülenmesini sağlar.
@using Microsoft.Web.Helpers;
@{
Facebook.Initialize("126301597569314", "564254a25dc9425aa7893100e2d3d886");
}
@Facebook.GetInitializationScripts();
@Facebook.LiveStream();
Biliyorum, yazı hem çok uzun hem de çok sert bir içerikten oluşmaktadır.Ama parça parça bu konu hakkında detaya girmektense hepsini bu şekilde derleyip okuyucularıma sunmayı tercih ettim.
Umarım birşeyler aktarabilmişimdir.
Faydalanmanız dileğiyle..
İyi çalışmalar..




Anlatmak mı araklamak mı? Açmış, Volkan Aktaş’ın kitabını olduğu gibi yazmışsın.
Olduğu gibi demek yanlış olur.Sonuçta kaynak olarak o kitaptan oldukça yararlandım.Kendim için okudum yorumladım ve okuyucularımla paylaşmak için o kitaptan yardım alarak bu konuyu yorumladım.Sonuçta üstadlar daha anlaşılır bir hiyerarşide konuyu sunmuşlar haliyle bende bunu modelledim.Lakin sizin açınızdan bir problem teşkil ediyorsa internette başka bir kaynak bularak yararlanabilirsiniz.
Bu blok %99 özgün bir yapıya sahiptir.Kimse bir kaynağı modellemeden teorik olarak bir anlatım yapamaz.Tabi ki de o işin üreticisi ya da sanatçısı değilse.Anlatım sıralamasından dolayı ve bir kaç cümle benzerliğine dayandırarak bu paylaşımı “Araklamak” olarak nitelendiriyorsanız sizin niyetiniz benim niyetime dil uzatmaktır.Haliyle benim amacımla sizin anlayışınız paralel olmadığı için burada böyle bir tepki vermeniz gayet doğal.Lakin neyle itham ediyorsanız edin ama piyasada ki Türkçe kaynak sıkıntısını göz ardı etmeden buradan yapılan emeğede saygıyla ve yakışır şekilde yaklaşın.
hocam bu butonları nasıl türkçeleş tireceğiz teşekkürler
buldum hocam teşekkürler..
Nasıl Türkçeleştirdin kardeşim anlatır mısın?
hocam paylaştıkça bilgi çoğalır. Emeğiniz için teşekkürler.
bu metnin videolu anlatımızı yaparsanız tatından yenmez hocam. oku oku karıştırdım hepten.
Teşekkür ederim Alper Bey,
Video meselesi zamanla olacak iş.Haliyle yoğunluk sebebiyle videolara söz verdiğim tarihlerde başlamak pek mümkün olmadı.Biliyorsunuz ki, ben videolara hiyerarşik bir konu takibinden devam ediyorum.
Bu işin zor yanlarından birisi bu müzdarip olduğunuz durum.Haliyle video gibi materyallerin olmaması bizim konuları takip etmemizi oldukça zorlaştırıyor.Ama ne yazık ki okuyarak bazı konuların üstesinden gelmeyi öğrenmemiz gerekmektedir.Özellikle bu alanda.
Saygılarımla..
Sevgili Gencay kardeşim bir yazılımcı olarak seni tebrik ederim.En çok sitene uğramamın sebebi geniş anlatıma sahip olman..Başarıların devamını dilerim emeğine sağlık..
Teşekkür ederim…