2010-02-21 35 views
0

我正在使用我的網絡應用程序出現錯誤,該應用程序使用Facebook連接,當用戶將我的Web應用程序打開並且Facebook.com打開並從Facebook.com註銷時出現。由於我的應用程序和Facebook Connect庫不知道會話不再有效,因此當它嘗試使用某些需要有效會話的Facebook Connect功能時,我收到'FacebookRestClientException'消息'會話密鑰無效或不再有效。 「只是想知道什麼是處理這個案例的一個PHP應用程序的最佳做法。在Facebook上處理用戶註銷連接

從谷歌搜索我發現有一個JS功能,ping Facebook服務器,看看用戶是否登錄,但我需要一個服務器端解決方案。

回答

1

使用:

$fb_user=$facebook->get_loggedin_user(); 

這會告訴你的登錄用戶的facebook_uid或者沒有登錄返回false

例如:

$fb_user=$facebook->get_loggedin_user(); 

if($fb_user) 
{ 
    try{ 
     $setstatus = $facebook->api_client->users_setStatus(
      $status, 
      $facebook_uid 
      ); 
     echo 'status has been updated'; 
    }catch (Exception $e) { 
     if($e->getCode() === 102) 
     { 
      // user is not logged in 
      echo 'you must log in to update your status'; 
     } 
     log_error($e->getMessage()); // log your error so you can fix it if you need to 
    } 
}else{ 
    echo 'you must log in'; 
} 
+0

我相信這個值設置和存儲在服務器端的Facebook對象,這是不知道的用戶已經註銷Facebook.com,所以即使用戶實際註銷,它也會返回一個facebook_uid。我試過這個,以防萬一,它不工作... – jhchen 2010-02-21 01:42:01

+0

在這種情況下,你可以捕捉錯誤,檢查它的回報。 看看我的錯誤日誌,我看到'會話密鑰無效或不再有效'作爲回報​​。你可能想檢查一下。 – Jayrox 2010-02-21 02:00:06

+0

Facebook的回報: 錯誤:102 常數:API_EC_PARAM_SESSION_KEY 描述:在所有的方法會話密鑰無效或不再有效 如果會話無效 – Jayrox 2010-02-21 02:15:17

0

因爲我在用笨我的項目,我使用this library做Facebook連接。我只是按照來自Facebook的示例代碼。然後我只是按照flow herea guide here。註銷時,我也從Facebook註銷,否則Facebook會話可以重新檢測我的應用程序和用戶登錄。

相關問題