Click here to Skip to main content
15,879,348 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
This is my full code.
PHP
    <meta charset="utf-8">
    <?php
     
    // include required files form Facebook SDK
     
    require_once( 'Facebook/HttpClients/FacebookHttpable.php' );
    require_once( 'Facebook/HttpClients/FacebookCurl.php' );
    require_once( 'Facebook/HttpClients/FacebookCurlHttpClient.php' );
    require_once( 'Facebook/Entities/AccessToken.php' );
    require_once( 'Facebook/Entities/SignedRequest.php' );
    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' );
     
    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;
     
    // start session
    session_start();
     
    // init app with app id and secret
    FacebookSession::setDefaultApplication( 'KEY','SECRET' );
     
    // login helper with redirect_uri
    $helper = new FacebookRedirectLoginHelper( 'SITE_NAME.php' );
     
    // 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
<pre lang="PHP">        // 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', '***/1458726944414455/likes***' );
      $response = $request->execute();
      // get response
      $graphObject = $response->getGraphObject()->asArray();
      
      // print profile data
      echo '<pre>' . print_r( $graphObject, 1 ) . '
';

// print logout url using session and redirect_uri (logout.php page should destroy the session)
echo 'Logout';

} else {
// show login url
echo 'Login';
}



In *** *** section above, if I put some Facebook page names or 'me', the code works fine. But when I insert '/1458726944414455/likes' something like this, I can't get any value so the results are always like this
Array ( )

What makes me mad is, /1458726944414455/likes this works fine in https://developers.facebook.com/tools/explorer, which is Graph API explorer. I think token scope is not that different in Graph API explorer and my own website.

What is wrong? I searched every website which wrote about facebook php sdk or graph api, but they are using almost same code with me.

Is this because that I didn't do anything about Review Submission Form? I just using the default App Status & Review. But I thought that it doesn't matter because I don't do login with Facebook something like that. What is wrong?

Thank you for reading.
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900