facebook SDK 4.0 выход PHP

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, он отлично работает при входе в систему, но как я собираюсь сделать выход из работы для этого скрипта? Я пытаюсь убить сеанс и файл cookie, но данные все еще хранятся в сеансе facebook, и я не могу выйти из системы. может ли кто-нибудь мне помочь?

Теги:
facebook
facebook-graph-api

1 ответ

1

вы можете использовать сеанс уничтожения, если вы хотите выйти из системы прямо из приложения.

session_destroy();

если вы хотите выйти из системы с помощью facebook, вы можете использовать метод getLogoutUrl ($ session, $ next_url).

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

выведет URL выхода, где $helper - это экземпляр FacebookRedirectLoginHelper а $session - действительный экземпляр FacebookSession

Ещё вопросы

Сообщество Overcoder
Наверх
Меню