某些特定于服务器的内容不允许与Facebook连接


Something Server Specific Not Allowing Connect with Facebook

我的FB连接在我的网站上运行得很好。然后有一天,我们注意到它不再工作了。它没有给出任何错误,但当我尝试从我的facebook类中执行getUser()函数时,对发送签名请求的响应是空的,没有用户数据。这是基本问题,但让我详细说明我已经确定的内容。

我认为服务器出现了某种问题,可能是httpd.conf内部的问题,也可能是php.ini中的问题,原因如下。

我将FB集成所需的所有PHP页面转移到另一个服务器和另一个域。他们工作得很好。对我来说,这排除了代码本身或我使用的Facebook应用程序设置的问题。

然后我回到有问题的服务器,设置了第三个域,并再次尝试了同样的操作。这是行不通的。因此,对我来说,这排除了我最终试图重新开始工作的特定领域的问题。

我承认,我不知道从它起作用到突然不起作用之间可能发生了什么变化。如果我这样做了,我有一个坚实的想法,我会把它回滚。我确实有人说,"用mod_deflate和mod_cache重新编译apache。"我试图搜索那些导致FB问题的人,但没有找到任何东西。

PHP版本5.3.10

服务器版本:Apache/2.2.22(Unix)服务器构建时间:2012年2月10日20:31:21Cpanel::简单::Apache v3.9.1版本9999

谢谢你阅读我的问题。

我已经解决了我的问题。我的解决方案的关键是转到base_facebook.php的第633行,并执行echo$e;以确定令牌响应失败的原因。然后我设法确定了问题的根源:

CurlException:1:libcurlCurl 中不支持或禁用协议https

所以我联系了我的服务器支持人员,他们告诉我,"curl php模块是在没有ssl支持的情况下构建的。"

"我几乎可以肯定的是,当我重建apache时,我确保检查了curlssl。这是人们要求启用的一个典型选项,所以我总是确保它被启用。"

因此,最终的解决方案是,他们必须使用curlssl模块重新编译apache和php。