OpenGraph Debugger报告错误的HTTP响应代码

时间:2012-11-28 23:16:16

标签: facebook-graph-api mediatemple

对于许多正常运行的网站,当我在开发者facebook com / tools / debug中通过OpenGraph调试器运行它们时,Facebook报告服务器返回了502或503响应代码。

这些网站在没有负载的服务器上显然工作正常。我尝试过的网址包括但不限于:

http://ac.mediatemple.net http://freespeechforpeople.org

这些实际上是MediaTemple托管的所有网站。然而,在与MediaTemple的人交谈之后,他们坚持认为它必须是API中的一个错误,而不是他们的问题。其他人从Facebook调试工具获得意外的500/502/503 HTTP响应代码,其中的网站由MediaTemple或其他任何人托管?有修复吗?

请注意,我已经在其中一个上查看了Apache日志,但没有发现Apache收到来自Facebook或502响应等请求的证据。

1 个答案:

答案 0 :(得分:0)

得到了他们的回应:

  

此时,似乎(mt)Media Temple服务器正在向Facebook的所有请求(包括调试器)返回200个响应代码。这可以通过从调试器中搜索访问日志中的命中来确认。有关查看访问日志的其他信息,请查看以下知识库文章:

     

我的服务器的access_log和error_log文件在哪里?   http://kb.mediatemple.net/questions/732/Where+are+the+access_log+and+error_log+files+for+my+server%3F#gs

     

您可以使用以下命令检查来自Facebook的访问日志:

cat <name of access log> | grep 'facebook' 
     

这将返回Facebook的所有点击。通常,调试器将指定用户代理'facebookplatform / 1.0(+ http://developers.facebook.com),而来自Facebook的一般命中将指定'facebookexternalhit / 1.0(+ http://www.facebook。 COM / externalhit_uatext.php)“。

     

使用此信息,您可以使用'curl'模拟来自Facebook的请求来执行更进一步的测试,如下所示:

curl -Iv -A "facebookplatform/1.0 (+http://developers.facebook.com)" http://domain.com 
     

这应该返回200或206响应代码。

     

总之,所有迹象表明我们的服务器返回200个响应代码,因此问题似乎是调试器解释此响应代码的方式。已经向Facebook提交了错误报告,我们仍在努力获取有关此问题的更多信息。随着更多信息的出现,我们一定会及时通知您。

好消息是,他们正在忙着解决它。坏消息,这是我们无法控制的。

此处有一篇论坛帖子:

https://forum.mediatemple.net/topic/6759-facebook-503-502-same-html-different-servers-different-results/

有超过800个观看次数和最近的活动,它表示他们正在努力工作。

我注意到https MT网站甚至没有提供返回码:

Error parsing input URL, no data was scraped.

解决

MT承认这是他们的错并修好了:

  

在调查Facebook调试器问题期间,我们发现由于请求格式错误,我们的防火墙正在过滤此工具使用的多个IP。我们将Facebook调试工具目前使用的IP地址范围列入白名单,如其网站上所列,这可以防止再次发生这种情况。

     

我们认为我们的自动禁止系统已阻止多个Facebook IP地址。我们的初步调查并未立即明确这一点,我们对此表示道歉并未及早发现。

     

API请求可能间歇性失败的原因是因为只有少数Facebook IP地址被阻止。 API在多个IP范围内进行负载平衡。当我们的系统选择滥用模式时,例如导致404响应的HTTP请求或无效的PUT请求,会添加全局防火墙规则以减轻行为。通常情况下,该系统运行良好,保护我们的客户免受持续威胁。

     

所以,话虽如此,我们今天一直在将Facebook API范围列入白名单,并确认我们的系统不再阻止这些请求。我们仍然希望受影响的人确认问题是否仍然存在。如果由于任何原因您仍然遇到问题,请打开或回复您现有的支持请求