尝试使用官方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应用设置中寻找一些东西吗?
谢谢!
答案 0 :(得分:2)
这里的答案很好,不确定这对你来说是否是同样的问题,但对我有用。 基本上,在用户授权应用程序之前,您无法获得他们的Uid。因此,即使他们已登录,应用程序仍然无法访问,直到他们接受为止。然后将返回UID。 facebook->getUser() returns 0
答案 1 :(得分:1)
如果其他人仍然遇到此问题,请确保您的应用仍未处于沙盒模式:)