我正在尝试使用一个需要Facebook用户提供信息的网站,我正在使用PHP和JS SDK.
我有一个PHP函数:
public function isLoggedOnFacebook() {
$user = $this->_facebook->getUser();
if ($user) {
return $this->_facebook->api("/$user");
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
在一个持有SDK中的facebook对象的类中$this->_facebook.
然后在块上我这样做:
<?php if (!$this->isLoggedOnFacebook()): ?>
<div>
<fb:login-button show-faces="true" perms="email" width="500" />
</div>
<?php endif ?>
Run Code Online (Sandbox Code Playgroud)
并且FB JS环境已正确设置(我认为),因此它可以工作.因此,用户可以弹出并授权该站点.
问题是即使在用户授权应用程序后,$ user始终为0,意味着$facebook->getUser()始终返回0,然后列出用户的面孔,包括已登录的用户,但如果我拨打电话$facebook->api('/me')或其他什么,那么它将会抛出无效的令牌异常.
我已经看到了这个问题,但我还没有看到解决方案,我不知道问题出在哪里,我的想法已经用完了.
在应用程序部分的开发人员的Facebook页面上有一个网站选项卡,您可以在其中设置您的站点URL和站点域,我认为这是我的问题的原因,但我不知道究竟是什么字段应该包含.