2012-01-09 311 views
1

即使我登出Facebook,我似乎无法将访问令牌作为无效访问。如何正确捕获访问令牌?

if ($user) { 
      try { 
      // Proceed knowing you have a logged in user who's authenticated. 
      $user_profile = $facebook->api('/me'); 
echo "Name: " . $user_profile['name']; 
      } 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. 
      error_log($e); 
      $user = null; 
      } 
     } 

即使我登出Facebook,我仍然收到用户名。显然访问令牌似乎仍然有效。我怎样才能解决这个问题?

或者我应该只在FB环境中在iframe中测试我的应用程序吗?

+0

任何人?不知何故,我无法捕捉异常? – alex 2012-01-10 16:52:49

回答

0

访问令牌不依赖于您在Facebook上的身份验证状态。您正在使用的Facebook PHP SDK将访问令牌存储在PHP会话中。所以,你可以清理你的会话。

+0

tx奥列格为清理起来,我会尝试你的建议。我必须start_session吗?或者它是PHP-SDK的一部分但是你知道为什么FB的默认代码不起作用吗?代码位于https://developers.facebook.com/docs/reference/php/facebook-api/ – alex 2012-01-11 21:00:18

+0

start_session是PHP-SDK的一部分。默认代码不包含有效的appId和秘密;) – Oleg 2012-01-12 09:17:09