Facebook getUser返回null,但只是第一次请求

时间:2013-07-22 18:39:45

标签: facebook login

这可能是一个非常简单的问题,但我似乎无法找到解决方案。

我正在使用Facebook登录来验证用户身份。有时这会失败。他们第一次点击“使用Facebook登录”按钮,服务器无法从Facebook获取任何数据($user为空)。有趣的是,当用户在此之后再次使用按钮时,一切都很好。然后,在整个浏览器关闭之前,您可以完全注销并登录,而不会出现任何问题。

if ($user) { 
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

2 个答案:

答案 0 :(得分:0)

听起来你正在使用JS和PHP SDK的组合。

如果用户使用JS SDK登录,则会发生这种情况,因为服务器端代码在第一次刷新页面之前没有读取设置的cookie。如果用户成功登录以提供新用户ID,您可以进行ajax调用,或者强制刷新页面。

答案 1 :(得分:0)

FYI。

我遇到了同样的问题,因为我正在初始化session_start(); 在包含我的fbaccess.php文件之前。

我通过将订单更改为:

来修复它
include('./fb/fbaccess.php');
session_start();