Sosyal medya
alemini kasıp kavurmaya devam eden Facebook sadece kullanıcıları değil biz
geliştiricileri de düşünerek bir çok SDK’yı bizlere sunuyor bu gün sizlere
FacebookClient sınıfının metotlarından bahsedeceğim öncelikle projemize
Facebook SDK’yı projeye dahil edelim.
Ben bu
yazıyı yazdığımda version 6.8.0 sürümü aktif sizde dilerseniz bu sürümü veya
üst sürümlerini kullanabilirsiniz.
Solution Explorer kısmından References sağ tıklayıp Manager
NuGet Packages tıplayıp search kısmına
Facebook sdk yazıyoruz ve Install diyoruz.
Facebook sdk’yı
projeye dahil ettikten sonra yeni bir sınıf oluşturup bir önceki makalede almış olduğumuz App ID ve App Secret keylerini bu sınıfta
kullanacağız.
Dört tane
private değişkenimiz olucak bunlar
AppId ve SecretId
AppId ve SecretId
CallBackUrl= developers.facebook.com da uygulamanıza girip Settings > Advanced sayfasında Deauthorize Callback URL kısmına yazmış olduğunuz Url bu değişkene
yazıcaz böylece biz kendi web projemizden gönderdiğimiz link facebook a gidip app
id ve secret kontrol edip tekrar vermiş olduğumuz url’ye yönlendirilcek…
Ve son
değişkenimiz…
Scope=
Kullanıcının hangi bilgilerine ihtiyaç duyduğumuzu bu değişkende
belirticez kullanıcı da size bu bilgileri almanız için izin vericek. Biz bu
örnekte sadece user_about_me ve email
Access tokenslerini kullanıcaz. Bu sayfadan
diğer tokensleri görebilirsiniz.
Buradan sonrasını
kodların üst kısımlarında açıklama şeklinde devam edicez...
//facebooktan gelen kullanıcı bilgilerini
yükleyeceğimiz nesnemiz…
public class FacebookProfile
{
public string Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public string Mail { get; set; }
}
public class FacebookService
{
// facebook app id
private string AppId = "783828931674793";
//facebook app secret id
private string AppSecret = "45d1e79ef55576f3601a651fe9ddfc64";
// Facebook login için kullanıcıyı
facebook'a yönlendirirsiniz. Daha sonra kullanıcı gerekli
// izinleri verdikten sonra facebook o
kullanıcıyı size yönlendirir. CallBackUrl ile
//siz facebook'a kullanıcıyı şu adresime
yönlendir diyorsunuz.
private string CallbackUrl = "http://localhost:57871/Home/FacebookSayfa";
// Kullanıcının hangi bilgilerine ihtiyaç
duyduğunuzu scope ile belirtirsiniz ve
// kullanıcı da size bu bilgileri
alabilmeniz için izin verir.
private string Scope = "user_about_me,email";
// Sdk'in sağladığı sınıftır.
FacebookClient fb = new FacebookClient();
// Bu metod ile kullanıcıyı
yönlendireceğiniz facebook url'i oluşur
public Uri CrateLoginUrl()
{
return fb.GetLoginUrl(
new
{
client_id =
AppId,
client_secret = AppSecret,
redirect_uri = CallbackUrl,
response_type = "code",
scope =
Scope,
});
}
// AccessToken facebook'un size verdiği
erişim kodudur. OAuth konusuna bakarsanız ne olduğunu daha iyi anlayabilirsiniz.
public dynamic GetAccessToken(string code, string state, string type)
{
dynamic result = fb.Post("oauth/access_token",
new
{
client_id
= AppId,
client_secret = AppSecret,
redirect_uri = CallbackUrl,
code =
code
});
return result.access_token;
}
// Kullanıcı bilgileirni çektiğimiz metod
public FacebookProfile GetUserInfo(dynamic accessToken)
{
var client = new FacebookClient(accessToken);
var profile = new FacebookProfile();
// "/me" yerine kullanıcının
facebook id'sini de yazabilirsiniz. Ama zaten "me", o an uygulamayı
kullanan kullanıcının kendisi oluyor.
dynamic me = client.Get("/me");
//Facebooktan gelen bilgileri
oluşturduğumuz nesnemize yüklüyoruz ve
return ediyoruz
profile.Name = me.first_name;
profile.LastName = me.last_name;
profile.Id = me.id;
profile.Mail = me.email;
return profile;
}
}
Sınıfımızı oluşturduktan sonra Mvc projemizde 2 action
oluşturup bu metotları çağıralım.
Controller actionlarımız
ilk olarak FacebookLogin
actionu çağırıcağız o action facebook’a gidip ordan FacebookSayfa Actionuna
düşecek ordanda View sayfamızda bilgileri yazdıracağız.
public ActionResult FacebookSayfa(string code, string state, string type)
public ActionResult FacebookSayfa(string code, string state, string type)
{
//Facebook Service sınıfımızı
tanımlıyoruz
FacebookService fb = new FacebookService();
//facebooktan return olduktan sonra bize
3 adet değer geliyor code,state ve type bunları GetAccessToken metotduna
gönderiyoruz buda bize geriye AccessToken kodunu döndürüyor
string token = fb.GetAccessToken(code, state, type);
//tokeni tekrar GetUserInfo metotduna
gönderiyoruz ve buda bize kullanıcı bilgilerinin bulunduğu FacebookProfile
nesnemizi geri döndürüyor
FacebookProfile profile = fb.GetUserInfo(token);
return View(profile);
}
public ActionResult FacebookLogin()
{
//Facebook Service sınıfımızı
tanımlıyoruz
FacebookService fb = new FacebookService();
//facebook url'yi oluşturup o url'ye
yönlendiriyoruz
string url = fb.CrateLoginUrl().ToString();
return Redirect(url);
}
Projeyi çalıştırıp http://localhost:57871/Home/FacebookLogin
dediğim zaman facebook sayfasına yönlendirip benden BlogTest şu bilgilere
erişebilecek izin veriyormusunuz diye panel açıldı buna tamam diyorum ve tekrar
kendi localhostuma bu sefer FacebookSayfa actionuna yönlendiriliyor ve
kullanıcı bilgilerini çekiyoruz.
Tekrar locallimize
yönlendirdikten sonra modelden aldığımız bilgileri sayfaya yazıyoruz. Eyer daha
farklı bilgilere ulaşmak istiyorsanız score kısmına eklemeniz ve
FacebookProfile nesnemize
propertiesi yeterli olacaktır.
Bu bilgilerle
ister facebook id ye göre sitenize üye yapabilirsiniz veya yorum kısmına direk
bu isim ad soyad da yorum yapıldı yada score kısmını değiştirip kullanıcının
resimlerini durumlarını vb. bilgilerini sitenizde kullanabilirsiniz.
Casino Table Games | Play Free Casino & Slot Games Online
YanıtlaSilGet ready for an 원주 립 카페 amazing 인천 휴게텔 time when you can play casino table games online. Learn 벳 365 코리아 먹튀 all about casino table 케이 벳 games and 메이플 캐릭터 슬롯 our casino software.