.NET'ten Facebook'a post atmak.

0 dakikada yazıldı

59679 defa okundu

Düzenle

Hazır .NET'ten Twitter'a mesaj atma konusuna bakmışken :) Gelin bir de aynı hikayenin Facebook ayağına göz atalım. İtiraf etmem gerek Facebook tarafı biraz daha ... hmm nasıl desem :) "kıl" :) Aynı Twitter'da olduğu gibi yine bir Application olarak uygulamamızı tanımlamamız gerekiyor ama buradaki farklılıklardan biri genelde Facebook uygulamalarının Facebook içerisinde de listeleniyor ve sunuluyor olması. Benim hikayemde ben blogdan kendi fan page'ime post atmak istediğim için sonuç itibari ile ortada herkesin kullanabileceğimi bir Facebook uygulaması vs olmayacak. Facebook ortamına yaratacağım uygulamayı veya daha doğrusu "Uygulama Pointer"'ının sadece Facebook API'lerine ulaşabilmek için kullanacağız.

Eğer .NET'ten Twitter'a mesaj atma konusunu okuduysanız API'lere ulaşım ve mesaj atma mantığının aslında Facebook'da da bire bir aynı olduğunu söyleyebilirim. İlk olarak Facebook API'lerini kullanabilmek için Facebook'da bir uygulama yaratıp gerekli izinleri yani key'leri alacağız. Sonra yarattığımız o uygulamanın profil sayfamıza veya benim örneğimde fan page'ime ulaşması için gerekli izinleri isteyeceğiz. İzinlerle ilgili tokenları da aldıktan sonra kendi başımıza yolumuza devam edebiliriz :)

http://www.facebook.com/developers

Hemen yukarıdaki adrese gidip facebook hesabınızla giriş yapıyorsunuz. "Create New App" dediğiniz anda bir uygulama ismi bir de namespace istenecek. Kafanıza göre uygun birşeyler seçin :) Bu uygulamayı zaten bizim dışımızda yani benim örneğimden blogdan facebook post atmak için benim dışımda kimse kullanmayacak.

Uygulamayı yarattığınız anda karşınıza gelen ilk sayfada App ID ve App Secret bilgileri yer alacaktır. İşte bunlar Facebook API'lerini kullanmak için izinlerimiz! Aynı sayfanın alt kısmında ise aşağıdaki ekran görüntüsünü göreceksiniz.

Uygun bir seçeneği seçip geçiyoruz
:)Uygun bir seçeneği seçip geçiyoruz :)

Daha önce de dediğim gibi bizim Facebook uygulamamız facebook üzerinde görünür bir uygulama falan olmayacak. Sadece facebook işlem yapabilen bir uygulama olacak. Zaten uygulamanın kendisi aslında benim örneğimde benim blog oluyor :) Blogumun da tek yapacağı benim adıma fan page'ime post atmak o kadar. O nedenle yukarıdaki ekran görüntüsündeki gibi Canvas URL vs bilgilerini sallayabilirsiniz. Bu URL bilgilerini Facebook üzerinde çalışacak bir uygulama geliştirmek istediğinizde tabi ki kritik olacaktır fakat bu senaryo konumuz dışında :)

Kendi profilimiz için token alma zamanı!

Şimdi uygulamamızı yarattık ama bu uygulamanın daha bizim profil sayfamızda işlem yapma hakkı yok. Normalde bu hak alma vs işlemlerini uygulamanızın bir parçası haline getirebilirsiniz. Tabi bu durum eğer uygulamanız birden çok müşteriye ve facebook hesabına erişecekse gerekecektir. Benim örneğimde tek istediğim kendi profil sayfama hatta profilimden de öte fan page sayfama erişebilmekti.

[URL]

http://www.facebook.com/dialog/oauth/?response_type=token&display=popup&\ scope=user_about_me,publish_stream,offline_access,manage_pages&\ client_id=APP_ID_BURAYA&\ redirect_uri=http://www.facebook.com/connect/login_success.html

Yukarıda gördüğünüz URL'i alıp doğrudan bir tarayıcıya yapıştırabilirsiniz. Tabi öncesinde APPID kısmını kendi APPID'niz ile değiştirmeyi unutmayın. Bu adrese gittiğinizde facebooka login olduktan sonra sizden uygulamaya izin vermeniz istenecektir :) İstediğim izinlerin çeşitlerini zaten URL içerisinde görebiliyorsunuz diye tahmin ediyorum. offline_access alacağımız tokenların expire etmemesini sağlayacak. publish_stream profilinizin duvarına post atabilmemize izin verecek. Son olarak manage_pages ise hesabınıza bağlı fan page gibi sayfaları da yönetebilmeye izin verecek.

İzin verme işlemini yaptığınızda sayfaya sadece "Success" yazısı gelecektir. İşte tam o anda tarayıcının adres çubuğundaki adresi alın, kopyalayın!

[URL]

http://www.facebook.com/connect/login_success.html#\ access_token=AAAEnj_ACCESSTOKEN_BU_ISTE_uJZBIZD&\ expires_in=0

Adresin içindeki fragment kısmına baktığımızda parametrelerde access token'ın bulunduğunu görebiliyoruz! İşte budur :) İhtiyacımız olan bilgiyi aldık.

Eğer siz de benim gibi bir fan page'e post etmek istiyorsunuz fan page'ler için ayrı ayrı token almanız gerekiyor. Bir hesaba bağlı tüm fan page vs'lerin tokenlarını görmek için yukarıdaki işlemleri yaptıktan sonra aldığınız token ile aşağıdaki adresi ziyaret edebilirsiniz :)

[URL]

https://graph.facebook.com/me/accounts?\ access_token=AAAEnj_ACCESSTOKEN_BU_ISTE_uJZBIZD

Bu adresteki Access Token bir önceki adımda elde ettiğimiz token. Token'ı verip bu adrese girdiğinizde karşınıza bir JSON nesnesi gelecektir. JSON içerisindeki tüm page'ler ve her biri için ayrı ayrı access token'lar bulunacak. Eğer o page'lerle ilgili işlem yapmak istiyorsanız söz konusu page'in token'ınını kullanmanız gerek.

Token'ımız hazır şimdi kod yazma zamanı!

Artık ister kendi profil sayfamız olsun ister fan page, token'ımız hazır olduğuna göre facebook'a nasıl bir post atarız ona bakalım. Aynı Twitter tarafında olduğu gibi yine NuGet üzerinden bir kütüphane indirerek ilerleyeceğiz. NuGet konusunu ilk defa duyanlar .NET'ten Twitter'a mesaj atma konusuna bakabilirler.

NuGet'te "Facebook" diye aratırsanız karşınıza "Facebook SDK Core" diye bir kütüphane gelecektir. O kütüphaneyi referans almanız yeterli.

[VB]

Dim fb = New FacebookClient("AAAEnj_ACCESSTOKEN_BU_ISTE_uJZBIZD")\ fb.Post("/me/feed"New Dictionary(Of StringObject)() \         From {{"message""Örnek Mesaj!"}})

İşte kodumuz bu kadar :) Eldeki token ile bir FacebookClient yaratıyoruz sonra da "/me/feed"'e yani kendi duvarımıza mesajımızı gönderiyoruz. Eğer bir fan page token'ı kullanıyorsanız fan page ID'nizi "ME"nin yerine koyarak mesajı aşağıdaki gibi gönderebilirsiniz.

[VB]

Dim fb = New FacebookClient("AAAEnj_ACCESSTOKEN_BU_ISTE_uJZBIZD")\ fb.Post("/207845619255642/feed"New Dictionary(Of StringObject)() \         From {{"message", message}})

İşte budur! :) Hepinize kolay gelsin!