Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查用户是否登录到Facebook_Facebook_Facebook Php Sdk - Fatal编程技术网

检查用户是否登录到Facebook

检查用户是否登录到Facebook,facebook,facebook-php-sdk,Facebook,Facebook Php Sdk,我正在用PHPSDK将Facebook集成到我的网站中。 该网站使用离线访问。根据Facebook平台规则,你必须提供一个注销链接,让用户注销Facebook 如果用户没有登录Facebook,我不想显示注销链接,因为他们可能会将其与重新授权按钮混淆。(如果他们没有登录,链接将不会执行任何操作…) 我是否可以检查用户是否登录了Facebook 我的想法是使用getUser()方法查看是否获得了用户,如果没有,则继续设置我拥有的访问令牌,并知道用户是否登录。 但是,getUser()方法检查是否已

我正在用PHPSDK将Facebook集成到我的网站中。 该网站使用离线访问。根据Facebook平台规则,你必须提供一个注销链接,让用户注销Facebook

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

我是否可以检查用户是否登录了Facebook

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


我想通过将$user变量更改为public并在我的应用程序中将其设置回null,我可以非常轻松地做到这一点,但我不想编辑sdk,除非我真的必须这样做。

我认为只有当用户同时登录并获得授权时,才应该显示“注销”按钮。根据我的经验,如果用户没有授权你的应用,你通常不知道他们是否登录了Facebook。无论如何,如果他们点击授权你的应用程序,如果他们没有登录,系统会提示他们在此时登录。

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

$facebook->getUser(); // provides user id of logged in user
$facebook->getAccessToken(); // provides access token of logged in user
如果您确实需要检查用户是否已登录,然后设置访问令牌并再次检查,那么没有什么可以阻止您创建facebook对象的单独实例并自行设置访问令牌


但是,不确定您为什么要这样做,因为如果您拥有通过脱机访问权限获得的访问令牌,则该令牌始终有效(直到用户取消授权或更改密码),如果您没有脱机访问权限,则应使用已签名的请求或代码中提供的令牌。

是,如果用户授权了应用程序,则该链接只应显示在用户所在的页面上。getLoginStatus()不是3.1.1中的函数。getUser()不能使用两次。至少,在我的测试和sdk代码中看起来是这样的。