Facebook SDK for PHP 4.0.0登录注销问题
我是一名PHP开发人员,我想要的是,首先用户来到我的网站,使用Facebook登录,然后我想将用户重定向到特定页面,获取访问令牌,然后调用Graph API访问用户数据。我把它分为两个步骤 1) 让用户使用Facebook登录,完成后代码如下: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
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注销呢?这就是它的工作方式。如果您只想将他们从应用程序中注销,请删除会话。