2013-10-08 52 views
1

我正在使用FB登录API为我的网站创建登录功能。Facebook登录 - 无法检索电子邮件地址

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

我能够获取名称和基本知识。但电子邮件我无法得到。

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

我在做什么错?

最好的问候, 拉斯穆斯

+0

_“在我的应用程序,我已经设置permissisions” _ - 这些设置是自动登录时触发访问从应用程序中心_only_应用。无论何时您自己处理登录,您都必须通过'scope'参数请求权限... – CBroe

+0

太棒了。但现在我的网页不会将我的网址重定向到我的网址,而是重定向到domain/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>"; 

} 
相关问题