检查用户是否已登录Facebook

时间:2011-08-28 11:10:04

标签: facebook facebook-php-sdk

我正在使用php sdk将Facebook整合到我的网站中。 该网站使用offline_access。根据Facebook平台规则,您必须提供一个注销链接,将用户从Facebook中记录下来。

如果用户未登录Facebook,我不想做的是显示注销链接,因为他们可能会将其与重新授权按钮混淆。 (如果他们没有登录,链接将无法执行任何操作......)

无论如何,我可以检查用户是否已登录Facebook?

我的想法是使用getUser()方法来查看我是否有用户,如果没有,那么我继续设置我拥有的访问令牌,我会知道用户是否登录。 但是,getUser()方法检查是否已设置受保护的$ user变量,如果已设置,则返回它。这使得getUser()方法在我设置访问令牌时无法使用,并且需要再次检查应用是否具有访问权限。

我想我可以通过将$ user变量更改为public并在我的应用程序中将其设置为null来超级轻松地完成它,但除非我真的需要,否则我不想编辑sdk。

2 个答案:

答案 0 :(得分:0)

我认为如果用户已登录并获得授权,您应该只显示“注销”按钮。根据我的经验,如果用户未授权您的应用,您通常不知道用户是否登录了Facebook。无论如何,如果他们点击授权你的应用,如果他们还没有登录,他们会被提示登录。

答案 1 :(得分:0)

使用php SDK,有两种方法可以检查用户的登录状态:

$facebook->getUser(); // provides user id of logged in user
$facebook->getAccessToken(); // provides access token of logged in user

如果你绝对需要检查用户是否已登录,那么设置访问令牌并再次检查,没有什么能阻止你创建一个单独的facebook对象实例并自己设置访问令牌。

但是,不确定为什么要这样做,就好像你有一个使用offline_access权限获得的访问令牌一样有效(直到用户取消授权或更改密码),如果你没有offline_access,您应该使用signed_request或代码中提供的那个。