Php ile Facebook Auth Api kullanarak giriş yapma ile ilgili örnek kodları paylaşacağım.
Öncelikli olarak 3 adet dosya ve Facebook api kütüphanesini kullanacağız;
Kütüphane indirme linki : Facebook API İndir
- facebook-login.php : Login olmamızı ve login olduktan sonra bilgileri alacağımız sayfa.
- facebook-callback : Login paremetrelerimizi ve geri dönüş parametrelerimizi tanımayacağımız sayfa.
- logout.php : Facebook hesabımız ile giriş yaptıktan sonra çıkış yapmamızı sağlayacak sayfa.
Öncelikli olarak facebook-login.php dosyamızı oluşturuyoruz;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<?php session_start(); ?> <html xmlns:fb = "http://www.facebook.com/2008/fbml"> <head> <title>Facebook ile Giriş</title> <link href = "http://www.bootstrapcdn.com/twitter-bootstrap/2.2.2/css/bootstrap-combined.min.css" rel = "stylesheet"> </head> <body> <?php if ($_SESSION['FBID']){ ?> <div class = "container"> <div class = "hero-unit"> <h1>Merhaba !</h1> </div> <div class = "span4"> <ul class = "nav nav-list"> <li class = "nav-header">Kullanıcı Resmi : </li> <li><img src = "https://graph.facebook.com/<?php echo $_SESSION['FBID']; ?>/picture"></li> <li class = "nav-header">Facebook ID : </li> <li><?php echo $_SESSION['FBID']; ?></li> <li class = "nav-header">Facebook Kullanıcı İsim : </li> <li><?php echo $_SESSION['FULLNAME']; ?></li> <li class = "nav-header">Facebook Kullanıcı E-posta :</li> <li><?php echo $_SESSION['EMAIL']; ?></li> <div><a href="logout.php">Çıkış Yap</a></div> </ul> </div> </div> <?php }else{ ?> <div class = "container"> <div> <a href = "facebook-callback.php">Facebook İle Giriş Yap</a> </div> </div> <?php } ?> </body> </html> |
İkinci olarak ise facebook-callback.php dosyamızı oluşturuyoruz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
<?php session_start(); require_once 'Facebook/autoload.php'; use Facebook\FacebookSession; use Facebook\FacebookRedirectLoginHelper; use Facebook\FacebookRequest; use Facebook\FacebookResponse; use Facebook\FacebookSDKException; use Facebook\FacebookRequestException; use Facebook\FacebookAuthorizationException; use Facebook\GraphObject; use Facebook\Entities\AccessToken; use Facebook\HttpClients\FacebookCurlHttpClient; use Facebook\HttpClients\FacebookHttpable; FacebookSession::setDefaultApplication( 'APP-KEY','APP-SECRET' ); $helper = new FacebookRedirectLoginHelper('.../facebook-callback.php' ); try { $session = $helper->getSessionFromRedirect(); }catch( FacebookRequestException $ex ) { // Gelen Hatalar Durumunda Yapilacak Islem }catch( Exception $ex ) { // Doğuralama Hatalası Döndüğünde } // Eğer Giriş Yapıldıysa if ( isset( $session ) ) { $Istek = new FacebookRequest( $session, 'GET', '/me?fields=id,name,email' ); $Cevap = $Istek->execute(); $graphObject = $Cevap->getGraphObject(); $FacebookID = $graphObject->getProperty('id'); $Isim = $graphObject->getProperty('name'); $EPosta = $graphObject->getProperty('email'); /* ---- Gelen Verileri Session Degiskenlerine Atiyoruz -----*/ $_SESSION['FBID'] = $FacebookID; $_SESSION['FULLNAME'] = $Isim; $_SESSION['EMAIL'] = $EPosta; /* ---- Giris Yapildiysa Yonlendir ----*/ header("Location: facebook-login.php"); }else { /* ---- Giris Yapişlmadiysa Yonlendir ----*/ $Yetkiler = ['email']; $GirisURL = $helper->getLoginUrl($Yetkiler); header("Location: ".$GirisURL); } ?> |
Üçünce ve son olarak logout.php dosyamızı oluşturuyoruz :
1 2 3 4 5 6 7 8 9 |
<?php session_start(); session_unset(); $_SESSION['FBID'] = NULL; $_SESSION['FULLNAME'] = NULL; $_SESSION['EMAIL'] = NULL; header("Location: facebook-login.php"); ?> |