2014-01-29 3 views
0

페이스 북 SDK를 사용하여 사용자가 내 웹 사이트에 로그인 할 수있게했습니다. 이 코드는 오늘까지 작동했는데 사실은 (지금부터) 마지막 행에 대한 오류를 반환합니다.facebook 로그인 - 더 이상 작동하지 않는 이메일

//FACEBOOK SDK CODE 
//-------------------------------------------------------------- 

require 'facebookSDK/src/facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
)); 


// Get User ID 
$user = $facebook->getUser(); 

// We may or may not have this data based on whether the user is logged in. 
// 
// If we have a $user id here, it means we know the user is logged into 
// Facebook, but we don't know if the access token is valid. An access 
// token is invalid if the user logged out of Facebook. 

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

// Login or logout url will be needed depending on current user state. 
if ($user) { 
    $logoutUrl = $facebook->getLogoutUrl(); 
} else { 
    $statusUrl = $facebook->getLoginStatusUrl(); 
    $loginUrl = $facebook->getLoginUrl(); 
    header('location: '.$loginUrl); 
    exit; 
} 

// This call will always work since we are fetching public data. 
$naitik = $facebook->api('/naitik'); 


//---------------------------------------------------------------- 

$facebook_id=$user_profile['id']; 
$facebook_name=$user_profile['name']; 
$facebook_email=$user_profile['email']; 

정의되지 않은 색인 'email'. 나는 무엇을해야할지 모른다. 그것은 지금부터 일하고있었습니다 ... 나는 'name'과 'id'매개 변수는 괜찮지 만 'email'은 아니지만 사용자의 전자 메일을 가져와야합니다.

어떻게 해결할 수 있습니까?

+0

** 마지막 줄 3 전에 ** var_dump ($ user_profile) ** 시도해보십시오. 어떻게됩니까? – Reger

+0

[ "name"] [ "first_name"] [ "last_name"] [ "quotes"] [ "sports"] [ "id"] [ "name" [ "id"] [ "name"] [ "id"] [ "name"] [ "id"] [ "name" [ "id"] [ "이름"] [ "확인"] [ "updated_time"] [ "username"] [ " ]. 이드와 이름은 스포츠, 영화 등에 사용되기 때문에 여러 번 있습니다. – LucaP

+0

바로 사용자의 이메일을받을 수 없습니다. 그것에 대한 자세한 정보 : http://stackoverflow.com/questions/3611682/facebook-graph-api-how-to-get-users-email (중복 가능) – Reger

답변

0

페이스 북은 자사의 API를

변경 $ user_profile로 = $ facebook-> API에이 줄을 업데이트했습니다 ('나/필드 = 이메일?');