Facebook API从今天开始提供错误

时间:2014-10-15 09:31:08

标签: facebook-graph-api

直到今天我在PHP下的facebook api工作得很好。 我什么都没改变。但从今天开始,我得到以下错误:

  

facebook失败:"错误:14094410:SSL例程:SSL3_READ_BYTES:sslv3警报握手失败   / usr / bin / php /var/www/pas/www/cronjobs/cronjob.channelsActions.php

有没有人知道,我怎么能解决这个错误?

3 个答案:

答案 0 :(得分:11)

这是因为POODLE: SSLv3.0 vulnerability (CVE-2014-3566)

在今天宣布此漏洞之后,许多服务暂时完全禁用了SSLv3,包括Facebook,并且Facebook在他们的PHP SDK中使用了SSLv3。

我不确定您是否拥有与我相同的Facebook PHP SDK版本,但如果您有base_facebook.php文件,请找到以下行:

$opts[CURLOPT_SSLVERSION] = 3;

并将其更改为不再允许SSLv3的值(find all constants listed):

$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_DEFAULT;

或:

$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1;

或:

$opts[CURLOPT_SSLVERSION] = CURL_SSLVERSION_TLSv1_0;

这样Facebook API调用将使用TLSv1.0而不是SSLv3。 在我的情况下,这一行在" makeRequest($ url,$ params,$ ch = null)"功能在第963行,但根据您使用它的PHP SDK的版本可能会有所不同。

答案 1 :(得分:1)

Facebook于2014年10月14日公开披露了该协议中的一个严重漏洞后,决定放弃对Facebook 3.0属性的支持,包括Facebook平台API和实时更新API({{3} })。此更改有助于保护人们的信息。

使用SSL 3.0的旧版PHP SDK(Facebook PHP SDK 3.1.1及更早版本)将不再有效。所有开发人员都应该升级到我们使用TLS的SDK版本--Facebook SDK 3.2.3或更高版本。我们建议开发人员升级到我们最新的SDK SDK 4.0.0。

答案 2 :(得分:1)

我的服务器尚未升级到PHP 5.5或5.6,该版本包含CURL_SSLVERSION_TLSv1_0

使用较旧的PHP版本的修复程序是注释掉该行:

$opts[CURLOPT_SSLVERSION$