【发布时间】:2011-10-11 00:59:55
【问题描述】:
我正在尝试使用需要来自 Facebook 用户的一些信息的网站,我正在使用 PHP 和 JS SDK。
我在 PHP 中有一个函数:
public function isLoggedOnFacebook() {
$user = $this->_facebook->getUser();
if ($user) {
return $this->_facebook->api("/$user");
}
return false;
}
在一个类上,该类在 $this->_facebook 中持有来自 SDK 的 facebook 对象。
然后在一个块上我这样做:
<?php if (!$this->isLoggedOnFacebook()): ?>
<div>
<fb:login-button show-faces="true" perms="email" width="500" />
</div>
<?php endif ?>
FB JS 环境设置正确(我认为),所以它可以工作。所以用户得到弹出窗口并授权该站点。
问题是即使app被用户授权后$user总是0,意思是$facebook->getUser()总是返回0,然后列出用户的面孔,包括登录的用户,但是如果我让它调用@ 987654326@ 之类的,就会抛出无效令牌异常。
我已经看到了这个问题,但我没有看到解决方案,我不知道 问题出在哪里,我的想法已经用完了。
在应用程序部分的开发人员 Facebook 页面上有一个网站选项卡,您可以在其中设置您的站点 URL 和站点域,我认为这是我的问题的原因,但我不知道正是这些字段应该包含的内容。
【问题讨论】:
-
回答我自己的问题,我发现当前的JS SDK与PHP SDK 3.0.0不兼容。应该很快就会有新的JS SDK发布了,但是还没有上线,所以这就是它不起作用的原因。
-
我也遇到了 3.0.1 PHP API 的 getUser() == 0 问题!
-
@fd8s0 你打算在这里选择答案吗?
-
嗯,所有答案都有相关信息,正如我在之前的评论中所说,这个特殊问题是由于一段时间(现在已经消失)facebook提供的SDK相互不兼容而引起的.现在为了将来参考,我选择了一篇不错的博客文章,因为我认为它的工作原理非常清楚。
标签: php facebook facebook-graph-api