Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook SDK for PHP 4.0.0登录注销问题_Php_Facebook_Facebook Graph Api_Facebook Php Sdk - Fatal编程技术网

Facebook SDK for PHP 4.0.0登录注销问题

Facebook SDK for PHP 4.0.0登录注销问题,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,我是一名PHP开发人员,我想要的是,首先用户来到我的网站,使用Facebook登录,然后我想将用户重定向到特定页面,获取访问令牌,然后调用Graph API访问用户数据。我把它分为两个步骤 1) 让用户使用Facebook登录,完成后代码如下: include_once('facebook-php-sdk-v4-master/src/Facebook/FacebookSession.php'); include_once('facebook-php-sdk-v4-master/src/Faceb

我是一名PHP开发人员,我想要的是,首先用户来到我的网站,使用Facebook登录,然后我想将用户重定向到特定页面,获取访问令牌,然后调用Graph API访问用户数据。我把它分为两个步骤

1) 让用户使用Facebook登录,完成后代码如下:

include_once('facebook-php-sdk-v4-master/src/Facebook/FacebookSession.php');
include_once('facebook-php-sdk-v4-master/src/Facebook/FacebookRedirectLoginHelper.php');
require_once( 'facebook-php-sdk-v4-master/src/Facebook/FacebookRequest.php' );
require_once( 'facebook-php-sdk-v4-master/src/Facebook/FacebookResponse.php' );
require_once( 'facebook-php-sdk-v4-master/src/Facebook/FacebookSDKException.php' );
require_once( 'facebook-php-sdk-v4-master/src/Facebook/FacebookRequestException.php' );
require_once( 'facebook-php-sdk-v4-master/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'facebook-php-sdk-v4-master/src/Facebook/GraphObject.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;
session_start();
FacebookSession::setDefaultApplication('APP id', 'APP key');
$helper = new FacebookRedirectLoginHelper('http://redirect-url.com/');
$loginUrl = $helper->getLoginUrl();
echo "<a href=".$loginUrl.">FB login here</a>";
include_once('facebook-php-sdk-v4-master/src/facebook/FacebookSession.php');
包括一次(“facebook-php-sdk-v4-master/src/facebook/facebook/facebook重定向loginhelper.php”);
需要一次('facebook-php-sdk-v4-master/src/facebook/facebook/FacebookRequest.php');
需要一次('facebook-php-sdk-v4-master/src/facebook/facebook/facebook-response.php');
需要一次('facebook-php-sdk-v4-master/src/facebook/facebook/FacebookSDKException.php');
require_once('facebook-php-sdk-v4-master/src/facebook/FacebookRequestException.php');
需要一次('facebook-php-sdk-v4-master/src/facebook/facebook/FacebookAuthorizationException.php');
需要一次('facebook-php-sdk-v4-master/src/facebook/GraphObject.php');
使用Facebook\FacebookSession;
使用Facebook\FacebookRedirectLoginHelper;
使用Facebook\FacebookRequest;
使用Facebook\FacebookResponse;
使用Facebook\FacebookSDKException;
使用Facebook\FacebookRequestException;
使用Facebook\FacebookAuthorizationException;
使用Facebook\GraphObject;
会话_start();
FacebookSession::setDefaultApplication('APP id','APP key');
$helper=新的FacebookRedirectLoginHelper('http://redirect-url.com/');
$loginUrl=$helper->getLoginUrl();
回声“;
2) 获取重定向URL上的令牌详细信息,该信息不完整 有人能帮我了解如何正确处理登录和会话的详细信息吗????

要在重定向后获取令牌,需要执行以下操作:

$session = $helper->getSessionFromRedirect();
然后,检查会话是否有效,并根据需要重定向:

if ( isset( $session ) ) {
  // user is logged in, display logout link
  echo '<a href="' . $helper->getLogoutUrl( $session, 'http://yourwebsite.com/app/logout.php' ) . '">Logout</a>';
} else {
  // show login url
  echo '<a href="' . $helper->getLoginUrl( array( 'email', 'user_friends' ) ) . '">Login</a>';
}
if(isset($session)){
//用户已登录,显示注销链接
回声';
}否则{
//显示登录url
回声';
}

即使是我也会遇到同样的错误

找到另一个方法以获取另一页上的会话信息。 在第一页

FacebookSession::setDefaultApplication($app_id,$app_secret,$cookie);

// login helper with redirect_uri
$helper = new FacebookCanvasLoginHelper();



try {
  $session = $helper->getSession();


  $_SESSION['token'] = $session->getToken();

}
第二页应该是

$token = $_SESSION["token"];

$session = new FacebookSession($token);

为什么也要从facebook注销呢?这就是它的工作方式。如果您只想将他们从应用程序中注销,请删除会话。