Created
July 12, 2014 22:58
-
-
Save SecureCloud-biz/f3956264cd89073696f9 to your computer and use it in GitHub Desktop.
Facebook PHP SDK 4.0.0 Example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// include required files form Facebook SDK | |
// added in v4.0.5 | |
require_once( 'Facebook/FacebookHttpable.php' ); | |
require_once( 'Facebook/FacebookCurl.php' ); | |
require_once( 'Facebook/FacebookCurlHttpClient.php' ); | |
// added in v4.0.0 | |
require_once( 'Facebook/FacebookSession.php' ); | |
require_once( 'Facebook/FacebookRedirectLoginHelper.php' ); | |
require_once( 'Facebook/FacebookRequest.php' ); | |
require_once( 'Facebook/FacebookResponse.php' ); | |
require_once( 'Facebook/FacebookSDKException.php' ); | |
require_once( 'Facebook/FacebookRequestException.php' ); | |
require_once( 'Facebook/FacebookOtherException.php' ); | |
require_once( 'Facebook/FacebookAuthorizationException.php' ); | |
require_once( 'Facebook/GraphObject.php' ); | |
require_once( 'Facebook/GraphSessionInfo.php' ); | |
// added in v4.0.5 | |
use Facebook\FacebookHttpable; | |
use Facebook\FacebookCurl; | |
use Facebook\FacebookCurlHttpClient; | |
// added in v4.0.0 | |
use Facebook\FacebookSession; | |
use Facebook\FacebookRedirectLoginHelper; | |
use Facebook\FacebookRequest; | |
use Facebook\FacebookResponse; | |
use Facebook\FacebookSDKException; | |
use Facebook\FacebookRequestException; | |
use Facebook\FacebookOtherException; | |
use Facebook\FacebookAuthorizationException; | |
use Facebook\GraphObject; | |
use Facebook\GraphSessionInfo; | |
// start session | |
session_start(); | |
// init app with app id and secret | |
FacebookSession::setDefaultApplication( 'xxx','yyy' ); | |
// login helper with redirect_uri | |
$helper = new FacebookRedirectLoginHelper( 'http://yourwebsite.com/app/' ); | |
// see if a existing session exists | |
if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) { | |
// create new session from saved access_token | |
$session = new FacebookSession( $_SESSION['fb_token'] ); | |
// validate the access_token to make sure it's still valid | |
try { | |
if ( !$session->validate() ) { | |
$session = null; | |
} | |
} catch ( Exception $e ) { | |
// catch any exceptions | |
$session = null; | |
} | |
} | |
if ( !isset( $session ) || $session === null ) { | |
// no session exists | |
try { | |
$session = $helper->getSessionFromRedirect(); | |
} catch( FacebookRequestException $ex ) { | |
// When Facebook returns an error | |
// handle this better in production code | |
print_r( $ex ); | |
} catch( Exception $ex ) { | |
// When validation fails or other local issues | |
// handle this better in production code | |
print_r( $ex ); | |
} | |
} | |
// see if we have a session | |
if ( isset( $session ) ) { | |
// save the session | |
$_SESSION['fb_token'] = $session->getToken(); | |
// create a session using saved token or the new one we generated at login | |
$session = new FacebookSession( $session->getToken() ); | |
// graph api request for user data | |
$request = new FacebookRequest( $session, 'GET', '/me' ); | |
$response = $request->execute(); | |
// get response | |
$graphObject = $response->getGraphObject()->asArray(); | |
// print profile data | |
echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>'; | |
// print logout url using session and redirect_uri (logout.php page should destroy the session) | |
echo '<a href="' . $helper->getLogoutUrl( $session, 'http://yourwebsite.com/app/logout.php' ) . '">Logout</a>'; | |
} else { | |
// show login url | |
echo '<a href="' . $helper->getLoginUrl( array( 'email', 'user_friends' ) ) . '">Login</a>'; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment