Reputation: 31
Actually I used javascript facebook sdk for retrieve user profile information. so I used following api call
FB.api(
"/me",
function (response) {
if (response && !response.error) {
/* handle the result */
}
}
);
so this work fine and I retrieved user details. but now I need to retrieve that logged user details using php. I used php sdk 4.0
require_once 'Facebook/FacebookSession.php';
require_once 'Facebook/FacebookRedirectLoginHelper.php';
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
FacebookSession::setDefaultApplication('****','****');
$helper = new FacebookRedirectLoginHelper( 'http://localhost/' );
$session = $helper->getSessionFromRedirect();
if($session) {
try {
$user_profile = (new FacebookRequest(
$session, 'GET', '/me'
))->execute()->getGraphObject(GraphUser::className());
echo "Name: " . $user_profile->getName();
} catch(FacebookRequestException $e) {
echo "Exception occured, code: " . $e->getCode();
echo " with message: " . $e->getMessage();
}
}
but it wasn't work. here $session gave null value please help me.
Upvotes: 1
Views: 480
Reputation: 15457
You need to ask the user to login first, and then $session
won't be null.
if ( $session ) {
// your code here
} else {
// show login url
echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
If you already have a valid access_token
, then you can create a new session using it:
$session = new FacebookSession( $access_token );
And then the rest of your code will work.
Upvotes: 1
Reputation: 21
Refer to API
/* make the API call */
$request = new FacebookRequest(
$session,
'GET',
'/me'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */
Source: https://developers.facebook.com/docs/graph-api/reference/v2.0/user
Upvotes: 1