Facebook SDK for PHP 4.0.0登录注销问题

时间:2014-05-19 17:14:46

标签: php facebook facebook-graph-api facebook-php-sdk

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

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)获取重定向网址上的令牌详细信息,这是不完整的 任何人都可以帮助我,我怎么能得到这个细节?????

2 个答案:

答案 0 :(得分:0)

See the following tutorial关于如何正确处理登录和会话。

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

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

答案 1 :(得分:0)

即使我得到同样的错误。

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

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);
相关问题