2011-01-04 7 views
0

iam using openid для входа на мой сайт, и после успешного входа я могу получить адрес электронной почты пользователя и другие параметры, такие как имя.Facebook graph api problem

Но для facebook, iam с помощью facebook connect (Graph api) и после успешного входа в систему iam получает токен доступа. Но используя этот токен, я не могу получить электронное письмо пользователя. Я получаю сообщение об ошибке: неверный токен или неверный URL-адрес перенаправления.

+0

Возможный дубликат [Facebook connect, адрес электронной почты?] (Http://stackoverflow.com/questions/2986578/facebook -connect-email-address) – Rup

+0

нет, я думаю, что это не дубликат, потому что iam получает здесь ошибку. Я также изменил название сейчас. Пожалуйста, посмотри. –

+0

Какие расширенные разрешения вы запрашиваете? – misterjinx

ответ

2

После того, как вы получили свой начальный токен, вы должны перенаправить пользователя на URL-адрес, запрашивающий разрешения, в этом случае «электронная почта». Самый простой способ реализовать это - использовать PHP SDK, предоставляемый Facebook.

Если пользователь предоставляет разрешения, вы сможете запросить график api, чтобы получить адрес электронной почты (наряду с другой базовой информацией.) После того, как у вас есть действующий токен, и пользователь разрешил ваше приложение, адрес электронной почты будет включен $ user_data.

$facebook = new Facebook(array('appId'=>APP_ID, 'secret'=>APP_SECRET, 'cookie'=>true)); 

try{ 
    $user_data = $facebook->api('/me'); 
} catch (Exception $e){ 
    header('Location: ' . $facebook->getLoginUrl(array('perms'=>'email')); 
    die(); 
} 

print $user_data['email']; 

Имейте в виду, что адрес электронной почты может быть адрес прокси-сервера и гораздо больше, чем обычный адрес электронной почты, чтобы выделить достаточно много места в вашей системе хранения. Например, адрес может выглядеть примерно так: [email protected]acebook.com

+0

Спасибо Эрик за ваш ответ .... я попробую. –