通过PHP SDK获取简单的Facebook个人资料数据


Get Simple Facebook Profile Data Via PHP SDK

我正在一个网页上构建一个Facebook登录功能,该功能包括以下href值:

https://www.facebook.com/dialog/oauth?client_id=[myAppID]&redirect_uri=[myURL]&state=[myState]

它工作得很好,但我想在myURL中包含PHP,这样我就可以在登录时提取基本的public_profile FB信息(email_address、first_name、last_name)。我认为PHP SDK就是这样做的。我已经阅读了开发者指南,但我不清楚我需要什么FB会话等来实现这一目标

在我的脚本结束时,我只想将上面提到的三个数据点存储在变量中。就是这样。有人能提供一个代码示例吗?非常感谢。

-从developers.facebook.com下载SDK,并将文件夹"facebook"上传到您的网络空间
-创建一个Facebook应用程序
-将此代码放在"Facebook"的同一文件夹中:

<?php
session_start();
require_once('Facebook/Entities/AccessToken.php');
require_once( 'Facebook/FacebookSession.php' );
require_once( 'Facebook/FacebookRedirectLoginHelper.php' );
require_once('Facebook/HttpClients/FacebookHttpable.php');
require_once('Facebook/HttpClients/FacebookCurl.php');
require_once('Facebook/HttpClients/FacebookCurlHttpClient.php');
require_once( 'Facebook/FacebookRequest.php' );
require_once( 'Facebook/FacebookResponse.php' );
require_once( 'Facebook/FacebookSDKException.php' );
require_once( 'Facebook/FacebookRequestException.php' );
require_once( 'Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/GraphObject.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;
// init app with app id (APPID) and secret (SECRET)
FacebookSession::setDefaultApplication('EDIT THIS','EDIT THIS');
// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper( 'EDIT THIS' );
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' );
  $response = $request->execute();
  // get response
  $graphObject = $response->getGraphObject();
  $email = $graphObject->getProperty('email');
  $firstname = $graphObject->getProperty('first_name');
  $lastname = $graphObject->getProperty('last_name');
} else {
  // show login url
  echo '<a href="' . $helper->getLoginUrl() . '">Get information</a>';
}
?>