Facebook API无法连接主机和超时错误


Facebook API couldn't connect to host and timeout errors

几天前,我在Facebook上发布了一款游戏的测试版。不幸的是,我没有那么幸运,在应用程序的第一个最重要的日子里,当用户第一次使用它时,他们不断得到错误,这是由于我的PHP Apache服务器上的错误,从Facebook API得到以下错误-

  1. 无法连接主机

  2. connect()超时!

我的服务器运行在我从Joyent为facebook开发者提供的免费服务器上。我不是网络服务器方面的专家,所以我不知道问题是出在我这边还是Facebook那边。我怎样才能快速解决这个问题!

非常感谢!

编辑:由于某些原因,我忘记了代码示例和错误示例-

下面是一个针对facebook的简单查询示例-

$session = $facebook->getSession();
$currentID = $facebook->api('/me?fields=id');

下面是错误堆栈跟踪-

couldn't connect to host StackTrace: Array
(
    [0] => Array
        (
            [file] => /users/home/aagnt2sv/web/public/Facebook/facebook-php-sdk-7d538d3/src/facebook.php
            [line] => 523
            [function] => makeRequest
            [class] => Facebook
            [type] => ->
            [args] => Array
                (
                    [0] => https://graph.facebook.com/me?fields=id
                    [1] => Array
                        (
                            [method] => GET
                            [access_token] => 104269778819|2.AQAKqpIXE0jqFuoU.3600.1311008400.1-785849095|qxtBqmWWRMc_GpM77CK77RbO4YA
                        )
                )
        )
    [1] => Array
        (
            [file] => /users/home/aagnt2sv/web/public/Facebook/facebook-php-sdk-7d538d3/src/facebook.php
            [line] => 491
            [function] => _oauthRequest
            [class] => Facebook
            [type] => ->
            [args] => Array
                (
                    [0] => https://graph.facebook.com/me?fields=id
                    [1] => Array
                        (
                            [method] => GET
                        )
                )
        )
    [2] => Array
        (
            [function] => _graph
            [class] => Facebook
            [type] => ->
            [args] => Array
                (
                    [0] => /me?fields=id
                )
        )
    [3] => Array
        (
            [file] => /users/home/aagnt2sv/web/public/Facebook/facebook-php-sdk-7d538d3/src/facebook.php
            [line] => 444
            [function] => call_user_func_array
            [args] => Array
                (
                    [0] => Array
                        (
                            [0] => Facebook Object
                                (
                                    [appId:protected] => *censored*
                                    [apiSecret:protected] => *censored*
                                    [session:protected] => Array
                                        (
                                            [uid] => *censored*
                                            [access_token] => 104269778819|2.AQAKqpIXE0jqFuoU.3600.1311008400.1-785849095|qxtBqmWWRMc_GpM77CK77RbO4YA
                                            [expires] => 1311008400
                                            [sig] => ddf14dcaa953cb64d3f98b0649b60613
                                        )
                                    [signedRequest:protected] => 
                                    [sessionLoaded:protected] => 1
                                    [cookieSupport:protected] => 1
                                    [baseDomain:protected] => 
                                )
                            [1] => _graph
                        )
                    [1] => Array
                        (
                            [0] => /me?fields=id
                        )
                )
        )
    [4] => Array
        (
            [file] => /users/home/aagnt2sv/web/public/edamometer/EdamometerWS.php
            [line] => 31
            [function] => api
            [class] => Facebook
            [type] => ->
            [args] => Array
                (
                    [0] => /me?fields=id
                )
        )

再次感谢!

这个问题在几天后自行修复了。也许是我的服务器或者Facebook的服务器暂时出现了问题。

使用

获取用户id
$fb = new Facebook(array(
    'appId'  => 'your_app_id',
    'secret' => 'your_app_secret',
));
$user = $fb->getUser();// returns user id

我目前有这个问题与我的服务器(使用PHP访问Facebook API),以及。根据错误信息的性质,很明显问题出在我的服务器(运行在亚马逊云上,顺便说一句)和Facebook服务器之间的连接上。

让我大吃一惊的是,有些命令工作正常。也就是说,尝试使用一个Facebook令牌登录工作正常,而另一个则导致此错误消息。

我能想到的唯一合理的解释是Facebook服务器正在经历某种暂时的打嗝…但即使这样也不能很好地解释问题,因为它以某种方式与正在使用的令牌绑定在一起。唯一有意义的方法是,如果有某种错误,Facebook的服务器在处理我给他们的特定令牌时超时…