2012-03-09 63 views
2

我想知道如何使用通過PHP SDK 中的getAccessToken()獲取的訪問令牌以下是我的代碼片段,試圖顯示用戶電子郵件ID以及用戶活動: 當我運行此代碼時,em17和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/php/facebook-getLoginUrl/

對於權限的位置:

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

+0

嘿,電子郵件正在檢索,但當我嘗試打印user_activities該應用程序不會給任何輸出只要求身份驗證,並停止工作。 – 2012-03-09 16:51:50

相關問題