$ facebook-> getUser()在facebook登录重定向后继续返回null

时间:2012-09-21 18:39:01

标签: php facebook facebook-graph-api facebook-php-sdk

尝试使用官方php sdk通过图形API授权用户时出现问题。

看起来很简单,但我无法让它工作,getUser()继续返回null。

这是我的代码以最简单的形式简化:

$facebook = new Facebook(array(
      'appId'  => 'ID',
      'secret' => 'SECRET',
      'cookie' => true
    ));

    $user = $facebook->getUser();

    if (!$user):
       $params = array('scope' => 'email','redirect_uri' => 'http://myredirecturi.com');
     ?>
        <a href=" <? echo $facebook->getLoginUrl($params); ?>">Login</a>
    <? endif; ?>

所以,当我点击登录按钮时,我会去Facebook,他们就像它应该的那样到达重定向网址。

我也有GET数据:“code”和“state”所以看起来不错,但是我没有“signed_request”值。

最后,$ facebook-&gt; getUser()继续返回null。

这里有什么问题?

- facebook对象是否已初始化? ('cookie'设置应该设置为true吗?)

-redirect_uri也不是https uri。这有关系吗?

- 我应该在Facebook应用设置中寻找一些东西吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

这里的答案很好,不确定这对你来说是否是同样的问题,但对我有用。 基本上,在用户授权应用程序之前,您无法获得他们的Uid。因此,即使他们已登录,应用程序仍然无法访问,直到他们接受为止。然后将返回UID。 facebook->getUser() returns 0

答案 1 :(得分:1)

如果其他人仍然遇到此问题,请确保您的应用仍未处于沙盒模式:)