2013-10-08 1 views
1

Я создаю функцию входа для своего сайта, используя API входа FB.Facebook login - не удается получить адрес электронной почты

Я использую https://graph.facebook.com/oauth/access_token?client_id=ID&redirect_uri=URL&client_secret=SECRET&code=CODE

Я могу получить имя и основы. Но электронной почты я не могу получить.

В моем приложении у меня есть разрешения, в том числе «электронная почта». Но все же, когда APP говорит, что «ВЕБ-САЙТ хочет получить доступ к вашей информации и списку друзей», опция электронной почты не упоминается.

Что я делаю неправильно?

С наилучшими пожеланиями, Rasmus

+0

_ «В моем приложении у меня установлены разрешения» _ - эти настройки предназначены для автоматического входа в систему при активации приложения из центра приложения _only_. Всякий раз, когда вы обрабатываете логин самостоятельно, вы должны запрашивать разрешения через параметр «scope» ... – CBroe

+0

Фантастический. Но теперь моя страница не перенаправляет мою ссылку на мой URL, а на домен/index.php? –

+0

Хорошо, тогда вы, возможно, сделали что-то неправильно. – CBroe

ответ

1

Вы должны включить параметр области действия и параметра перенаправления.

$config = array(); 
$config['appId'] = 'xxx'; 
$config['secret'] = 'xxx'; 

$facebook = new Facebook($config); 

if(isset($_GET['act']) && $_GET['act'] == "logout") { 
    $facebook->destroySession(); 
} 


$user = $facebook->getUser(); 
echo $user; 
if ($user) { 

    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; 
    $user = null; 
    } 
    echo "<pre>"; 
    print_r($user_profile); 
    echo "</pre>"; 
    $logout = $facebook->getLogoutUrl(); 

    //echo $logout; 

    echo "<a href='test.php?act=logout'>Logout</a>"; 


} else { 

    $login = $facebook->getLoginUrl(array("scope"=>"email","display"=>"popup","redirect_uri"=>"http://domain.com/test.php")); 

    echo "<a href='".$login."'>Login</a>"; 

}