这是facebook php sdk中的登录系统,会发生什么情况,它要求基本权限,然后当用户通过他的Facebook帐户允许时,它会存储他的Facebook ID和电子邮件,然后通过会话在索引中显示此fbid和电子邮件,但是它无法正常工作,尽管fbid来了坚果电子邮件没有来,它显示为空白
<?php
session_start();
require_once("autoload.php");
require_once('Facebook/FacebookSession.php');
require_once('Facebook/FacebookRedirectLoginHelper.php');
require_once('Facebook/FacebookRequest.php');
require_once('Facebook/FacebookResponse.php');
require_once('Facebook/FacebookSDKException.php');
require_once('Facebook/FacebookRequestException.php');
require_once('Facebook/FacebookAuthorizationException.php');
require_once('Facebook/GraphObject.php');
require_once('Facebook/GraphUser.php');
require_once('Facebook/GraphSessionInfo.php');
require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'Facebook/HttpClients/FacebookCurl.php' );
require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'Facebook/Entities/AccessToken.php' );
require_once( 'Facebook/Entities/SignedRequest.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;
// init app with app id and secret
FacebookSession::setDefaultApplication( ' 332325566667346','30adsfsdf7sdf87df6s7df87sdf76dsfd16' );
// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('http://localhost/bb/fbconfig.php' );
try {
$session = $helper->getSessionFromRedirect();
} catch( FacebookRequestException $ex ) {
// When Facebook returns an error
} catch( Exception $ex ) {
}
// see if we have a session
if ( isset( $session ) ) {
$request = new FacebookRequest( $session, 'GET', '/me' );
$response = $request->execute();
$graphObject = $response->getGraphObject();
$email = $graphObject->getProperty('email');
echo $email;
} else {
$loginUrl = $helper->getLoginUrl();
header("Location: ".$loginUrl);
}
?>
您在登录过程中没有要求电子邮件权限:
$loginUrl = $facebook->getLoginUrl(array('scope' => 'email'));
来源: https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl
旁注:使用自动加载器或无数 require 语句,而不是两者;)(自动加载机将是明智的选择)。