2015-02-01 2 views
1

이것은 페이스 북의 php SDK의 로그인 시스템입니다. 기본 사용 권한을 묻는 메시지가 나타나면 사용자가 페이스 북 계정을 통해 허용 할 때 페이스 북의 id와 이메일을 저장 한 다음이 fbid와 이메일을 표시합니다 fbid 이메일이오고되지 너트이 표시되어 제공하지만 세션을 통해 인덱스에 있지만 제대로 작동하지 않는 빈이메일이 facebook php sdk에 들어오지 않습니다

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

답변

1

당신은 당신의 로그인 과정에서 이메일 권한을 묻는되지 않습니다

$loginUrl = $facebook->getLoginUrl(array('scope' => 'email')); 

출처 : https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl

사이드 노트 : 자동 로더 또는 무수한 요구 문을 사용하십시오 (둘 다 사용할 수는 없습니다.) (오토로더는 스마트 옵션입니다).

+0

하지만 오토로더 만 제공하는 경우 작동하지 않습니다 –

+0

글쎄, 뭔가 잘못되었을 수 있지만 오토로더의 요점은 그 수많은 무언가가 필요하지 않다는 것입니다.) – luschn

+0

"require_once ('Facebook/FacebookSession.php'); " 다음 오류가 표시됩니다 : "치명적인 오류 : 클래스 'Facebook \ FacebookSession'이 (가) C : \ xampp \ htdocs \ bb \ fbconfig.php의 23 행에 없습니다."해결 방법 Google에서 오류를 찾으려면 –

관련 문제