获取Facebook用户电子邮件使用图形API PHP SDK

问题描述:

我正在使用Facebook的图形API与PHP我想获取用户信息登录用户到我的网站,但经过大量的搜索和阅读我得到所有我需要的数据需要发邮件。获取Facebook用户电子邮件使用图形API PHP SDK

<?php 
include_once('../dashboard/includes/db_connection.php'); 
// added in v4.0.0 
require_once 'autoload.php'; 
use Facebook\FacebookSession; 
use Facebook\FacebookRedirectLoginHelper; 
use Facebook\FacebookRequest; 
use Facebook\FacebookResponse; 
use Facebook\FacebookSDKException; 
use Facebook\FacebookRequestException; 
use Facebook\FacebookAuthorizationException; 
use Facebook\GraphObject; 
use Facebook\Entities\AccessToken; 
use Facebook\HttpClients\FacebookCurlHttpClient; 
use Facebook\HttpClients\FacebookHttpable; 
// init app with app id and secret 
FacebookSession::setDefaultApplication('1393606834280204','3faf1ede6ccc48d6adf096f1a6850359'); 
// login helper with redirect_uri 
$helper = new FacebookRedirectLoginHelper('http://lhefficise.com/facebook/fbconfig.php'); 
try { 
    $session = $helper->getSessionFromRedirect(); 
} catch(FacebookRequestException $ex) { 
    // When Facebook returns an error 
} catch(Exception $ex) { 
    // When validation fails or other local issues 
} 
// see if we have a session 
if (isset($session)) { 
    // graph api request for user data 
    $request = new FacebookRequest($session, 'GET', '/me?fields=id,first_name,last_name,name,email'); 
    $response = $request->execute(); 
    // get response 
    $graphObject = $response->getGraphObject(); 

    // $fbid = $graphObject->getProperty('id');    // To Get Facebook ID 
    // $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name 
    // $fbfirstname = $graphObject->getProperty('name'); // To Get Facebook First Name 
    // $fblastname = $graphObject->getProperty('name'); // To Get Facebook First Name 
    // $femail = $graphObject->getProperty('email'); // To Get Facebook email ID 
    $obj = $graphObject->asArray(); 
    echo "<pre>"; 
    print_r($obj);exit; 
} else { 
    $loginUrl = $helper->getLoginUrl(); 
    header("Location: ".$loginUrl); 
} 
?> 

我送请求/me?fields=id,first_name,last_name,name,email但我没有收到电子邮件的所有其他信息是好的。

Array 
(
    [id] => xxxxxxxxxx83xxxx 
    [first_name] => Shan 
    [last_name] => Khaliq 
    [name] => Shan Khaliq 
) 

我可能做错了什么而得到的记录..

我已经有电子邮件检查链接的许可。

http://prntscr.com/9steek

在此先感谢。

我刚刚发现这一点后我才弄明白。

$loginUrl = $helper->getLoginUrl(array('scope' => 'email'));

我需要把国营石油项目,以从Facebook获取登录URL。

家伙感谢我真正适合这个问题。