2013-07-06 74 views
0

我有一遍又一遍的搜索,我似乎無法找到答案。我究竟做錯了什麼?Fceabook PHP SDK有效訪問令牌

我的錯誤是FacebookApiException [0]:必須使用活動訪問令牌來查詢有關當前用戶的信息。

編輯只需添加。這工作了一兩次,但從未連續。

require_once('media/fb/facebook.php'); 
     $app_id = '123456'; 
     $app_secret = '123456'; 
     $my_url = 'mysiteurl'; 

     $config = array(
      'appId' => $app_id, 
      'secret' => $app_secret, 
      'fileUload' => 'false'); 

     $facebook = new Facebook($config); 
     $user = $facebook->getUser(); 
     if($user) { 
      try { 
       $user_profile = $facebook->api('/me','GET'); 
      } catch(FacebookApiException $e) { 
       error_log($e->getType()); 
       error_log($e->getMessage()); 
      }  
     } else { 
      $login_url = $facebook->getLoginUrl(array('redirect_uri' => $my_url)); 
      header("Location:" . $login_url); 
      $user_profile = $facebook->api('/me','GET'); 
     } 

您的幫助是非常感謝。

回答

0

你的錯誤是否來自這一行:$user_profile = $facebook->api('/me','GET');底部?

標題功能將重定向用戶到Facebook登錄頁面,這將導致瀏覽器刷新。在此之後您將不會立即獲得用戶的訪問令牌。您需要等到用戶重定向到您的網站才能獲取訪問令牌。您需要將$my_url設置爲指向您在此處編寫的代碼的同一頁面。

+0

是的,那是我得到錯誤的地方。我之前通過將參數保留爲登錄網址的空白處嘗試過。這會默認它重定向到同一頁面。我仍然得到同樣的錯誤。 – Siva

+0

您需要詳細瞭解Facebook身份驗證過程的工作原理。我認爲你對這個概念有一些誤解。 – Shang