1

如何检查用户是否真的登录?$facebook->getUser()注销后仍然返回一个 ID。我是否需要做一些事情$facebook->api('/me')来检查用户是否“真的”登录?

4

3 回答 3

5

好吧,在我看来,FB PHP SDK 相当棘手,因为它依赖于您登录 Facebook 时从 Facebook 发送的 cookie。注销时不会删除此 cookie。因为在下面的代码中,变量 $uid 可以存储一个正确的用户 facebook id:

$uid = $facebook->getUser();

因此,据我所知,$facebook->api('/me');无论用户是否登录,通话都会说出真相。

try {
   $facebook->api('/me');
   /* user is really logged into FB */
} catch (Exception $e) {
   /* user is not currently logged into the FB */
}

我在我的生产应用程序中使用了上面的代码,它运行良好。

于 2011-12-24T22:11:26.430 回答
2

getLoginStatusUrl应该可以解决问题。我认为,如果您要求 offline_perms 比您有权访问 user_id 等等。我不知道你有没有,但很可能这应该是问题所在

于 2011-12-15T09:44:55.627 回答
0

您是否尝试过Facebook PHP SDK 文档中详述的方法?

$params = array(
  'ok_session' => 'https://www.myapp.com/',
  'no_user' => 'https://www.myapp.com/no_user',
  'no_session' => 'https://www.myapp.com/no_session',
);

$next_url = $facebook->getLoginStatusUrl($params);

根据用户在 Facebook 上的登录状态返回 URL。根据用户是登录、未连接还是退出 Facebook,您可以获得不同的 URL。

于 2011-12-15T09:44:13.200 回答