Issue
I'm a french student so, sorry for my bad English. I develop with Facebook sdk js and sdk php.
I had a login problem during about 10 months. Some of people couldn't access to my app or needed to reload the page. Now, I'm trying the new Facebook sdk 4.0 but that's not better, i probably forgot something.
Actually, sometimes i can access to my app directly, sometimes i have an error and i just need to reload, and sometimes i can't access to my app although i reload. That's very aleatory.
I show you a screen of the error i have when i print_r on a FacebookRequestException when i try to have a $session ($session = $helper->getSession();)
.
That's how i use the Facebook sdk php :
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/HttpClients/FacebookCurl.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/Entities/AccessToken.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/Entities/SignedRequest.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookSession.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookRequest.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookResponse.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookSDKException.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookRequestException.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookOtherException.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/GraphObject.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/GraphSessionInfo.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookSignedRequestFromInputHelper.php' );
require_once( 'facebook/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookJavaScriptLoginHelper.php' );
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
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;
use Facebook\FacebookSignedRequestFromInputHelper;
use Facebook\FacebookJavaScriptLoginHelper;
session_start();
FacebookSession::setDefaultApplication('***','***');
$helper = new FacebookJavaScriptLoginHelper();
if ( isset( $_SESSION ) && isset( $_SESSION['fb_token'] ) ) {
$session = new FacebookSession( $_SESSION['fb_token'] );
try {
if ( !$session->validate() ) {
$session = null;
}
} catch ( Exception $e ) {
$session = null;
}
} else {
try {
$session = $helper->getSession();
} catch(FacebookRequestException $ex) {
print_r($ex);
} catch(\Exception $ex) {
print_r($ex);
}
}
// see if we have a session
if ( isset( $session ) ) {
$access_token = $session->getToken();
$appsecret_proof = hash_hmac('sha256', $access_token, '***');
$request = new FacebookRequest( $session, 'GET', '/me', array("appsecret_proof" => $appsecret_proof) );
$response = $request->execute();
$graphObject = $response->getGraphObject();
$GLOBALS["facebook"]["joueur"] = $graphObject;
$request = new FacebookRequest( $session, 'GET', '/me/friends', array("appsecret_proof" => $appsecret_proof) );
$response = $request->execute();
$graphObject = $response->getGraphObject();
$GLOBALS["facebook"]["amis"] = $graphObject->asArray()["data"];
}
Thank you to try to help me
Solution
Finally and after a lot of hours of search, I removed all the php sdk. I can recolte all information about the user by the js sdk, and use ajax for access to my bdd. During all of this process, I load all my js files and when I receive the php data, i call some functions for fill the div.
Answered By - Sébastien Josserand
0 Comments:
Post a Comment
Note: Only a member of this blog may post a comment.