2012-03-09 4 views
2

PHPのSDKでgetAccessToken()で取得したアクセストークンを使用する方法を知りました 以下は、ユーザーの電子メールIDとユーザーアクティビティを表示しようとしているコードスニペットです: このコードを実行すると、emAILとUSER ACTIVITIESは空白になります私はこれを修正するのですか?PHP SDKでアクセストークンを使用し、fqlを使用してuser_activitiesパラメータを取得する方法

 <?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> 

答えて

3

あなたは、拡張アクセス権をお願いする必要があります。

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

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

詳細情報については、この上で、あなたがここにチェクすることができます

http://developers.facebook.com/docs/reference/api/permissions/:ここ権限については

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

+0

ちょっと、電子メールが取得されていますが、user_activitiesを印刷しようとすると、アプリケーションは認証を求めるだけで作業を停止します。 –

関連する問題