当前位置: 首页 > 面试题库 >

为什么Facebook PHP SDK getUser总是返回0?

卫博雅
2023-03-14
问题内容

我正在尝试一个需要Facebook用户提供一些信息的网站,正在使用PHP和JS SDK。

我在PHP中有一个功能:

public function isLoggedOnFacebook() {
    $user = $this->_facebook->getUser();
    if ($user) {
        return $this->_facebook->api("/$user");
    }
    return false;
}

在一个类中,该类包含来自SDK的facebook对象$this->_facebook

然后在一个块上,我这样做:

<?php if (!$this->isLoggedOnFacebook()): ?>
<div>
   <fb:login-button show-faces="true" perms="email" width="500" />
</div>
<?php endif ?>

FB JS环境已正确设置(我认为),因此可以正常工作。因此,用户会弹出窗口并授权该站点。

问题是即使用户授权了该应用程序之后,$
user也始终为0,这意味着$facebook->getUser()始终返回0,然后列出用户(包括登录的用户)的面孔,但是如果我调用它$facebook->api('/me')或进行其他操作,它将抛出无效的令牌异常。

我已经看到了这个问题,但是还没有找到解决方案,我不知道问题出在哪里,我的想法也用光了。

在“应用程序”部分的开发人员Facebook页面上,有一个“网站”选项卡,您可以在其中设置您的网站URL和您的网站域,我认为这是造成问题的原因,但我不知道这些到底是什么字段应该包含。


问题答案:

我特定问题的答案是,我使用的JS SDK和PHP SDK版本之间存在不兼容性,只是对其进行升级即可解决。

当此问题的症状是由多种不同原因引起的时,它们的症状是相似的,因此您可以很好地通过本页中提供的不同答案来进行侦查。



 类似资料:
  • 问题内容: 我有以下代码。应该返回表的最后一行的mysqli_insert_id()(在本例中为“ $ last_row”)始终返回0。为什么会这样呢? 问题答案: 并 没有 返回表的最后一排的ID。从文档中,它: …返回由查询产生的ID,该查询是对具有具有AUTO_INCREMENT属性的列的表进行的。如果最后一个查询不是or 语句,或者如果修改后的表没有带有属性的列,则此函数 将返回零 。 (

  • 问题内容: 我找到了JavaDoc的方法: 返回:如果此线程已被中断,则返回true;否则返回false。 否则为假。 我对这种方法的理解有误。此外,我可能会误解Thread中的“中断”概念。 欢迎任何解释!谢谢! 程式码片段: 在线程定义中: 调用: 问题答案: 引发异常后,线程不再处于中断状态。

  • 问题内容: 我一直在获取要使用mysqli返回的行数方面遇到麻烦。即使确实有一些结果,我每次都会得到0。 为什么没有显示正确的数字? 问题答案: 您需要先调用num_rows查找: 请参阅文档,该文档显示在页面顶部附近(在主要说明区域中)…

  • 初学者问题,很抱歉,如果这不是一个合适的地方,请尝试学习在中逻辑是如何工作的,我无法理解这一点 我希望它会说“是的!”如果是A、A、D或D,而是z,但出于某种原因,它会说“是的!”无论第一个符号是什么,都会断开,并且只检查第二个符号是否为z。

  • 在.NET Framework 4.5中,由Trim()方法调用的专用TrimHelper()方法使用以下条件来确定是否需要修剪字符:(由.NET Reflector反编译的代码) 我想知道为什么IsBOMWhitesspace方法总是返回false?? 这是微软计划在未来改变/扩展的吗?例如,通过检查char是否为‘u efff’并在这种情况下返回true?

  • 问题内容: 在CSS中定义时,总是返回空。 但是,如果您在该元素中设置样式,则可以获取style.display详细信息。 我的问题不同。 内联样式不是编码的好方法。因此,我们总是在CSS中分配样式。但是,为什么在提供style属性而不是通过element 时却显示为空?JavaScript是否特别无法读取style属性? 您可以在下面检查,即使我提供了,所有样式属性都为空。 为什么? 问题答案: