加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – facebook登录并从网站注销?

发布时间:2020-12-13 22:51:41 所属栏目:PHP教程 来源:网络整理
导读:我正在登录并注册一个有Facebook帐户信息的网站.为此,我已经制作了这样的代码 对于Index.html,我的代码是这样的 div id="fb-root"/divscript type="text/javascript"//![CDATA[window.fbAsyncInit = function() { FB.init({ appId : 'XXXXXXXXXXXXXXXX',// A
我正在登录并注册一个有Facebook帐户信息的网站.为此,我已经制作了这样的代码

对于Index.html,我的代码是这样的

<div id="fb-root"></div>
<script type="text/javascript">
//<![CDATA[
window.fbAsyncInit = function() {
   FB.init({
     appId      : 'XXXXXXXXXXXXXXXX',// App ID
     channelURL : '',// Channel File,not required so leave empty
     status     : true,// check login status
     cookie     : true,// enable cookies to allow the server to access the session
     oauth      : true,// enable OAuth 2.0
     xfbml      : false  // parse XFBML
   });
};
// logs the user in the application and facebook
function login(){
FB.getLoginStatus(function(r){
     if(r.status === 'connected'){
            window.location.href = 'fbconnect.php';
     }else{
        FB.login(function(response) {
                if(response.authResponse) {
              //if (response.perms)
                    window.location.href = 'fbconnect.php';
            } else {
              // user is not logged in
            }
     },{scope:'email'}); // which data to access from user profile
 }
});
}

// Load the SDK Asynchronously
(function() {
   var e = document.createElement('script'); e.async = true;
   e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
   document.getElementById('fb-root').appendChild(e);
}());

//]]>
</script>
<a href='#' onclick='login();'>Facebook Login</a>

在fbconnect.php我的代码看起来像这样

<?php
    require 'src/facebook.php';
    $facebook = new Facebook(array(
           'appId'  => 'XXXXXXXXXXXXXXXX','secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX','cookie' => true,));
    $user = $facebook->getUser();
    $loginUrl = $facebook->getLoginUrl();
    //echo "<a href='$loginUrl'>login</a>";

    $logoutUrl = $facebook->getLogoutUrl();
    //echo $loginUrl; 
    if($user){
        $_SESSION['user_info'] = $user; 
        $_SESSION['user_pro']= $facebook->api('/me');
        echo $_SESSION['user_pro']['first_name'];
        echo $_SESSION['user_pro']['last_name'];
        echo '<pre>';
        //print_r($_SESSION);
        echo '</pre>';
    }
    else{
        echo 'not logged in '; 
    }
    echo "<a href='logout.php'>log out </a>"
?>

因为我也想要注销系统,以便用户也可以从网站注销我为logout.php做了像这样的代码

<?php
require 'src/facebook.php';  //including the facebook php sdk
$token = $facebook->getAccessToken();
$url = 'https://www.facebook.com/logout.php?next=' . YOUR_SITE_URL .
  '&access_token='.$token;
session_destroy();
header('Location: '.$url);
?>

但这里显示的错误就像

Notice: Undefined variable: facebook in logout.php on line 3 Fatal error: Call to a member function getAccessToken() on a non-object in logout.php on line 3.

这里它很容易登录,但在注销时显示错误.有人可以告诉我如何解决这个问题吗?我是facebook应用程序的新手.所以任何帮助和建议都会非常明显.谢谢

解决方法

试试吧

require 'src/facebook.php';
$facebook = new Facebook();  //including the facebook php sdk
$token = $facebook->getAccessToken();

其中$facebook是Facebook类的实例.根据你的评论,如果你想从facebook注销那么你需要在你的注销函数中销毁会话

$facebook->destroySession();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读