为什么Facebook API调用仅在我的开发环境中重置连接?

时间:2012-03-21 00:03:12

标签: facebook api

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

一些失败的电话:

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)

当我尝试使用curl获取它们时,这些调用也以同样的方式失败。

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

任何建议,任何人?

该机器的价值在于Mac OS X 10.7。

2 个答案:

答案 0 :(得分:1)

问题似乎出现在MacPorts OpenSSL 1.1中,我最近安装了一堆其他升级。在此处报告:https://trac.macports.org/ticket/33715解决方案是“端口激活”之前的工作版本。

答案 1 :(得分:0)

从你上面所说的几乎可以肯定你的(机器/卷曲)配置拒绝Facebook的SSL证书。 可能是您的系统没有正确的根证书,或者有一些代理(例如Charles)正在修改证书

作为一个hacky解决方案,如果在命令行上使用curl,或者--no-check-certificateCURLOPT_SSL_VERIFYPEER在PHP中使用false,则可以使用CURLOPT_SSL_VERIFYHOST - 我真的不建议在生产环境虽然

也可能相关:您可能遗漏了Digicert的一些中间证书:请参阅https://www.digicert.com/digicert-root-certificates.htm签名