dongpu3898 2014-12-09 09:27 采纳率: 100%
浏览 60

facebook sdk 4.0 logout php

<?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>';}
?>

i follow this facebook sdk web it work fine in log in , but how i going to make log out work for this script ? i try to kill the session and cookie but the data still store in facebook session and i cant log out. can anyone give me a help here?

  • 写回答

1条回答 默认 最新

  • douyu0792 2015-01-02 19:59
    关注

    you can use session destroy if you want to logout the user just from your application .

    session_destroy();
    

    if you want to logout the user from facebook you can use getLogoutUrl($session, $next_url) method.

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

    will output the logout url, where $helper is an instance of FacebookRedirectLoginHelper and $session is a valid instance of FacebookSession

    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100