Facebook SDK for PHP 4.0.0登录登出问题


Facebook SDK for PHP 4.0.0 login logout issue

我是一个PHP开发人员,我想要的是首先用户来到我的网站,并使用Facebook登录登录,然后我想将用户重定向到特定页面,并获得访问令牌,然后调用图形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>";

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

我也会得到同样的错误。

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

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);