React Js ile Facebook Login Entegrasyonu

React Js ile Facebook Login Entegrasyonu

Uygulamalarda kullanıcı sayısını arttırabilmek için sosyal medya bağlantılarının yapılması günümüzde büyük önem taşımaktadır. Bu yazıda React.js uygulamamızaFacebook’u nasıl entegre edebileceğimizi göreceğiz.

Entegrasyon yapılırken Facebook’un sağlamış olduğu javascript sdk dan yararlanılmıştır.

Facebook Software Development Kit (SDK) ‘in yüklenmesi

Uygulamamızda componentDidMount içerisinde sdk nın sağladığı Facebook.init methodu ile facebook sdk projeye yüklenir.
FB.init methodu içerisinde 4 adet parametre sayesinde sdk ayarları yapılmaktadır. Bunlar ;

appId : Entegre edilen uygulama için Facebook tarafından verilen id. Aşağıda nasıl oluşturulacağı ile ilgili bilgilendirilme yapılmıştır.
version : Entegre olunan sdk versiyonu.
cookie : Cookilere izin verilip/verilmeyeceğini belirler.
xfbml : Yüklenildiği sayfa üzerinde sosyal pluginlere izin verilip/verilmeyeceğini belirler.

Nasıl application id oluşturulur ?

Facebook ile entegrasyon yapabilmek için öncelikle bu linkden entegre edilecek uygulama için bir uygulama id si alınmalıdır.
Add a New App butonuna (sağ üst tarafda) tıklayıp bilgileri girdikten sonra facebook bizi otomatik olarak hangi entegrasyonları yapabileceğimizi gösteren bir sayfaya yönlendirir.

Açılan bu sayfada sol üst tarafda bulunan Dashboard sekmesine tıkladığınız zaman uygulamamıza ait version ,application id ve application secretdeğerlerine ulaşabiliriz.

Biz burada facebook login entegrasyonu yaptığımız için Facebook Login quick startına tıklayıp ordan entegrasyonu gerçekleştireceğiz.

Facebook SDK üzerinden login methodunun çağırılması

componentDidMount methodu içerisinde sdkı yükledikten sonra Facebook’a login isteğinde bulunabiliriz.Bunun için window objesine yüklemiş olduğumuz FB objesi üzerinden login methodunu çağıracağız.

FB.login methodunu ilk parametre olarak callbackMethod ikinci parametre olarak da login olacak olan kullanıcının hangi bilgileri isteniliyorsa onlar scope objesi içerisinde tanımlanır.
Aşağıdaki kod örneğinde kullanıcının email adresi istenmiştir.

Bu linkden scope üzerinde hangi dataların çekilebileceğini görebilirsiniz.

Bu işlemlerin sonucunda aşağıdaki kod örneklerinden yararlanarak artık uygulamanızı facebook login ile entegre etmiş olacaksınız.

Kod Örnekleri

FB.login methodunun çağırılması :

statusChangeCallback(response) {   
    if (response.status === connected) {     
        const socialData = { 
            accessToken: response.authResponse.accessToken,
            expiresIn: response.authResponse.expiresIn,
            signedRequest: response.authResponse.signedRequest,
            userID: response.authResponse.userID     
    };  
         //Başarılı login   } else if (response.status === ‘not_authorized’) {   // Kullanıcı login oldu, fakat uygulamanıza erişim izni yok   } else {   // Login olunamadı   } } window.FB.login(this.statusChangeCallback, { scope: ‘email,public_profile’ });

SDK nın yüklenmesi


 componentDidMount() {   // Load the SDK asynchronously   (function(d, s, id) {   var js, fjs = d.getElementsByTagName(s)[0];   if (d.getElementById(id)) return;   js = d.createElement(s); js.id = id;   js.src = “https://connect.facebook.net/en_US/sdk.js";   fjs.parentNode.insertBefore(js, fjs);   }(document, ‘script’, ‘facebook-jssdk’));window.fbAsyncInit = function () {  window.FB.init({  appId: facebook.appId,  cookie: true,  xfbml: true,  version: ‘v2.8’ });};}

Facebook developers sitesi üzerinde bulunan örnek kod sayfanın alt kısmında bulunmaktadır.

Kolay Gelsin.. 🤞