Facebook登录 - 无法检索电子邮件地址

时间:2013-10-08 09:16:14

标签: php facebook facebook-graph-api facebook-login

我正在使用FB登录API为我的网站创建登录功能。

我使用https://graph.facebook.com/oauth/access_token?client_id=ID&redirect_uri=URL&client_secret=SECRET&code=CODE

我能够检索名称和基础知识。但是电子邮件我无法得到。

在我的应用中,我设置了许可,包括“电子邮件”。但是,当APP说“网站想要访问您的信息和朋友列表”时,没有提到电子邮件选项。

我做错了什么?

祝你好运, 拉斯穆斯

1 个答案:

答案 0 :(得分:1)

您必须包含scope参数和重定向参数。

$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>";

}