0

我在尝试使用官方 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,然后他们就到达了应有的重定向 url。

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

最后,$facebook->getUser() 继续返回 null。

这里有什么问题?

- facebook 对象是否初始化良好?(是否应该将“cookie”设置设置为 true ?)

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

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

谢谢 !

4

2 回答 2

2

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

于 2012-09-21T19:24:26.890 回答
1

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

于 2013-07-25T14:52:22.267 回答