2012-03-21 61 views
1

我们的应用程序在几个不同的地方调用Facebook API方法。它在Ruby中并使用HTTParty。这些调用在我自己的机器上失败,并且在测试和应用程序的开发实例中出现长时间超时后,“通过对等方重置连接 - SSL_connect”。他们在其他开发人员的机器,以及生产环境和生产环境中取得成功。代码和配置在版本控制中,所以我相信它们在工作环境和我的机器上都是一样的。直到几天前,这些调用都在我的机器上成功完成。我希望他们能够再次在我的机器上成功!为什么Facebook API调用仅在我的开发环境中重置连接?

几个失败的呼叫:

GET https://graph.facebook.com/me?access_token=(an access token just retrieved from Facebook's auth dialog) 
GET https://graph.facebook.com/(application ID)/accounts/test-users?access_token=(application ID)%7C(application secret) 

这些电话也无法以同样的方式,当我试图用卷曲得到它们。

虽然这种现象是最近的,但我不能想象最近在这个现象开始之前我的机器上发生了什么变化。我甚至不能想到一个开始寻找的好地方。我能想到的唯一的事情就是我最近频繁地进行测试,所以也许Facebook认为我是一个邪恶的机器人。我想不出Facebook如何能告诉我这是我的,而且当机器位于两个不同的IP地址后面时,我已经看到了这个问题。

任何建议,任何人?

为什么它值得这台机器是Mac OS X 10.7。

+0

你能够手动到达graph.facebook.com吗?你的DNS查找失败了吗?由于HTTPS连接上的证书检查,您的计算机的CURL配置是否拒绝了请求? (即做HTTP URL工作正常吗?) – Igy 2012-03-21 14:18:50

+0

是的,我可以在浏览器中访问graph.facebook.com。 DNS很好。使用HTTP而不是HTTPS的相同调用会立即失败,并告诉我他们需要HTTPS。不过,它可能是证书。上面的错误是我在我的应用程序的开发实例调用失败时在浏览器中看到的内容。 curl以“curl:(35)与graph.facebook.com:443有关的未知SSL协议错误”失败。 wget失败,并出现“错误:'graph.facebook.com'的证书不可信。”这些错误并没有明确指向我的结局,但我会将我的证书与没有此问题的机器进行比较。 – 2012-03-21 18:10:14

回答

0

从你上面说的几乎可以肯定你的(机器/卷曲)配置拒绝Facebook的SSL证书。 这可能是因为你的系统没有正确的根证书或有到位一些代理(如查尔斯),该重整证书

作为一个哈克的解决方案,如果使用命令行卷曲,你可以使用--no-check-certificate,或CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST为false PHP - 我真的不建议这样做,在生产环境中,虽然

也可能是相关的:你可能是失踪Digicert一些中间证书:在签名