【问题标题】:SSL Connection timeout in facebook fqlfacebook fql中的SSL连接超时
【发布时间】:2011-06-10 13:54:21
【问题描述】:

我正在使用 facebook api 使用 access_token 和 fql 获取 facebook 照片的备份。

使用 fql 我得到了用户的专辑列表

$client = new Facebook(array('appId' => 'xxxx', 'secret' => 'xxxxxx'));
$fql_albums = "SELECT aid,name from album where owner=$user_Id";

$albumId = $client->api(array(
    'method'       => 'fql.query',
    'access_token' => $user_access_token,
    'query'        => $fql_albums,
));

获得此列表后,我运行查询以获取相册中的所有照片,然后下载该相册,然后移至下一个相册。

它只下载了2张专辑,然后出现如下所示的错误

( ! ) 致命错误:未捕获的 CurlException:28:SSL 连接超时 投入 D:\wamp\www\FrostBox1.0\Facebook\FaceBookConnect\facebook-php-sdk\src\base_facebook.php 在第 759 行

我做错了什么?

【问题讨论】:

    标签: php facebook ssl facebook-fql


    【解决方案1】:

    对我来说,解决方案是添加

    $opts[CURLOPT_SSLVERSION] = 3;
    

    之前

    curl_setopt_array($ch, $opts);
    

    在 base_facebook.php 中

    感谢: https://developers.facebook.com/bugs/213367445404472/?browse=search_4eeccca164bbe6357503363

    【讨论】:

    • 这个答案也为我解决了!我认为某些版本的 libcurl 默认情况下不会激活 SSLv3
    • 这也为我解决了这个问题,经过多次调试,甚至联系了我们的网络主机并让他们使用 OpenSSL 更新和重新安装最新(修补版本)的 Apache。谢谢
    • 设置这个选项,即使 curl 调试说它已经在使用第 3 版,可能是一个小错误,特别是设置为第 3 版,这为我解决了问题。
    【解决方案2】:
    1. 打开base_facebook.php
    2. 找到CURLOPT_CONNECTTIMEOUT => 10
    3. 改成CURLOPT_CONNECTTIMEOUT => 30

    就是这样!

    【讨论】:

      【解决方案3】:

      我通过添加解决了它:

      CURLOPT_SSLVERSION     => 3,
      

      行后:

      CURLOPT_USERAGENT      => 'facebook-php-3.1',
      

      在 - base_facebook.php

      (使用SSLv3会使curl产生)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-05
        • 2013-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-17
        相关资源
        最近更新 更多