How to use access token with PHP SDK and retrieve user_activities parameter using fql?

10,148

You need to ask for extended permissions:

$params = array(
  'scope' => 'email, user_activities',
  'redirect_uri' => 'https://www.myapp.com/post_login_page'
);

$loginUrl = $facebook->getLoginUrl($params);

For more info on this you can chek here:

http://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/

For permissions here:

http://developers.facebook.com/docs/reference/api/permissions/

Share:
10,148
Mihir Ochani
Author by

Mihir Ochani

Updated on June 04, 2022

Comments

  • Mihir Ochani
    Mihir Ochani almost 2 years

    I was wondering how to use access token obtained by the getAccessToken() in PHP SDK Following is my code snippet trying to display user email id as well as user activities : When I run this code emAIL AND USER ACTIVITIES are blank how do I fix this?

          <?php
    
    
    
        require '/home/vespanve/public_html/facebook-php-sdk/src/facebook.php';
    
        $facebook = new Facebook(array(
          'appId'  => '39653698mmmmm448',
          'secret' => 'd7681299469mmmmmmmmmmmmm',
        ));
    
        $config = array(
            'appId' => '39653698mmmmm448',
            'secret' => 'd7681299469mmmmmmmmmmmmm',
          );
    
          $facebook = new Facebook($config);
          $user_id = $facebook->getUser();
        $access_token = $facebook->getAccessToken();
        $facebook->setAccessToken($access_token);
    
        ?>
        <html>
          <head></head>
          <body>
    
          <?
            if($user_id) {
    
    // We have a user ID, so probably a logged in user.
    // If not, we'll get an exception, which we handle below.
              try {
    
                $fql = 'SELECT name from user where uid = ' . $user_id;
            $fqlmail = 'SELECT email from user where uid = ' . $user_id;
            $fqlact = 'SELECT user_activities from user where uid = ' . $user_id;
                $ret_obj = $facebook->api(array(
                                           'method' => 'fql.query',
                                           'query' => $fql,
                                         ));
            $ret_obj2 = $facebook->api(array(
                                           'method' => 'fql.query',
                          'access_token' => $cookie['access_token'],
                                          'query' => $fqlmail,
                                         ));
            $ret_obj3 = $facebook->api(array(
                                           'method' => 'fql.query',
                          'access_token' => $cookie['access_token'],
                                          'query' => $fqlact,
                                         ));
    
                // FQL queries return the results in an array, so we have
                //  to get the user's name from the first element in the array.
                echo '<pre>Name: ' . $ret_obj[0]['name'] . '</pre>';
            echo '<pre>Email: ' . $ret_obj2[0]['email'] . '</pre>';
            echo '<pre>Activities: ' . $ret_obj3[0]['user_activities'] . '</pre>';
            $facebook->destroySession();
    
    
    
              } catch(FacebookApiException $e) {
                // If the user is logged out, you can have a 
                // user ID even though the access token is invalid.
                // In this case, we'll get an exception, so we'll
                // just ask the user to login again here.
                $login_url = $facebook->getLoginUrl(); 
                echo 'Please <a href="' . $login_url . '">login.</a>';
                error_log($e->getType());
                error_log($e->getMessage());
              }   
            } else {
    
    // No user, so print a link for the user to login
              $login_url = $facebook->getLoginUrl();
              echo 'Please <a href="' . $login_url . '">login.</a>';
    
            }
        ?>
    
          </body>
        </html>