2014-12-09 2 views
0
<?php 
    /* INCLUSION OF LIBRARY FILEs*/ 
    require_once('lib/Facebook/FacebookSession.php'); 
    require_once('lib/Facebook/FacebookRequest.php'); 
    require_once('lib/Facebook/FacebookResponse.php'); 
    require_once('lib/Facebook/FacebookSDKException.php'); 
    require_once('lib/Facebook/FacebookRequestException.php'); 
    require_once('lib/Facebook/FacebookRedirectLoginHelper.php'); 
    require_once('lib/Facebook/FacebookAuthorizationException.php'); 
    require_once('lib/Facebook/GraphObject.php'); 
    require_once('lib/Facebook/GraphUser.php'); 
    require_once('lib/Facebook/GraphSessionInfo.php'); 
    require_once('lib/Facebook/Entities/AccessToken.php'); 
    require_once('lib/Facebook/HttpClients/FacebookCurl.php'); 
    require_once('lib/Facebook/HttpClients/FacebookHttpable.php'); 
    require_once('lib/Facebook/HttpClients/FacebookCurlHttpClient.php'); 

    /* USE NAMESPACES */ 

    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\GraphUser; 
    use Facebook\GraphSessionInfo; 
    use Facebook\FacebookHttpable; 
    use Facebook\FacebookCurlHttpClient; 
    use Facebook\FacebookCurl; 

    /*PROCESS*/ 

    //1.Stat Session 
    session_start(); 

    //check if users wants to logout 
    if(isset($_REQUEST['logout'])){ 
     unset($_SESSION['fb_token']); 
    } 

    //2.Use app id,secret and redirect url 
    $app_id = ''; 
    $app_secret = ''; 
    $redirect_url= 'domain.php'; 

    //3.Initialize application, create helper object and get fb sess 
    FacebookSession::setDefaultApplication($app_id,$app_secret); 
    $helper = new FacebookRedirectLoginHelper($redirect_url); 
    $sess = $helper->getSessionFromRedirect(); 

    //check if facebook session exists 
    if(isset($_SESSION['fb_token'])){ 
     $sess = new FacebookSession($_SESSION['fb_token']); 
    } 

    //logout 
    $logout = ''; 

    //4. if fb sess exists echo name 
     if(isset($sess)){ 
      //store the token in the php session 
      $_SESSION['fb_token']=$sess->getToken(); 
      //create request object,execute and capture response 
      $request = new FacebookRequest($sess,'GET','/me'); 
      // from response get graph object 
      $response = $request->execute(); 
      $graph = $response->getGraphObject(GraphUser::classname()); 
      // use graph object methods to get user details 
      $name = $graph->getName(); 
      $id = $graph->getId(); 
      $image = 'https://graph.facebook.com/'.$id.'/picture?width=300'; 
      $email = $graph->getProperty('email'); 
      $gender =$graph->getProperty('gender'); 
      echo "hi $name <br>"; 
      echo "your email is $email <br><Br>"; 
      echo "your $gender"; 
      // echo "<img src='$image' /><br><br>"; 
      echo "<a href='".$logout."'><button>Logout</button></a>"; 
      $_SESSION['name'] = $name; 
      $_SESSION['email'] = $email; 
      $_SESSION['gender'] = $gender; 
     }else{ 
      //else echo login 
      echo '<a href="'.$helper->getLoginUrl(array('email')).'" >Login with facebook</a>';} 
?> 

나는 facebook sdk web을 따라 가면 로그인이 잘되지만 어떻게이 스크립트를 로그 아웃 할 수 있습니까? 나는 세션과 쿠키를 죽이려고하지만 데이터는 여전히 페이스 북 세션에 저장되며 로그 아웃 할 수 없다. 아무도 나 한테 도움을 줄 수 있니?facebook sdk 4.0 로그 아웃 php

답변

1

응용 프로그램에서 사용자를 로그 아웃하려면 세션 파괴를 사용할 수 있습니다.

session_destroy(); 

페이 스북에서 사용자를 로그 아웃하려면 getLogoutUrl($session, $next_url) 메서드를 사용할 수 있습니다. $helperFacebookRedirectLoginHelper$session과의 인스턴스

echo $helper->getLogoutUrl($session,'http://example.com'); 

가 출력 로그 아웃 URL은 FacebookSession

유효한 인스턴스