【问题标题】:Get Facebook User Email Using Graph API PHP SDK使用 Graph API PHP SDK 获取 Facebook 用户电子邮件
【发布时间】:2016-01-21 05:43:08
【问题描述】:

我正在使用 Facebook 的 Graph API 和 php 我正在尝试获取用户信息以将用户登录到我的网站,但经过大量搜索和阅读后,我得到了所有需要的数据(期望电子邮件)。

<?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

提前致谢。

【问题讨论】:

    标签: php facebook email facebook-graph-api


    【解决方案1】:

    我只是在我发布后才弄清楚。

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

    我需要输入 scop 从 facebook 获取登录 url。

    伙计们,谢谢我真的很适合提出这个问题的人。

    【讨论】:

      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2018-08-17
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多