Facebook Graph API评论计数突然停止工作

时间:2015-03-24 21:52:59

标签: php json facebook facebook-graph-api

我们的网站使用我们自己的评论系统(简单的php / mysql)以及fb评论插件。我希望能够添加每个的评论计数,以显示两者的评论总数。看起来很简单。

几个月前,我得到了这个工作。然后它突然停止工作。今天早上,我找到了一种新方法。让它在一个页面上工作,当我将代码添加到我们有评论的所有页面时,它已不再有效。

我正在试着让我的头发工作,对json几乎一无所知。 FB API资源管理器给我一个关于auth令牌的错误,但是按照我推荐的做法没有效​​果(即创建一个新的fb应用程序并包括他们提供的auth代码块)。

这是最初工作正常的事情:

    $fbcounturl = 'http://www.catalystathletics.com/articles/article.php?articleID=1902';
    $fbjsonurl = "https://graph.facebook.com/v2.1/?fields=share{comment_count}&id=" .$fbcounturl;
    $fbdata = file_get_contents($fbjsonurl);
    $fbarray = json_decode($fbdata, true);
    $fbcomcount = $fbarray['share']['comment_count'];
    print($fbcomcount);

然后我可以简单地将$ fbcomcount添加到我们的数据库中的$ comCount。

如果我只是浏览到网址,我会得到json信息:

    {
    "share": {
    "comment_count": 3
    },
    "id": "http://www.catalystathletics.com/articles/article.php?articleID=1902"
    }

但$ fbcomcount是空的。

以下是使用此功能的页面示例 - http://www.catalystathletics.com/article/1902/Jumping-Forward-in-the-Snatch-or-Clean-Error-Correction/#comments

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

最近陷入同样的​​问题,Facebook评论计数只是停止了工作。最终跟踪返回的JSOn响应中的错误,告诉我Error #4 Application request limit reached

{"error":{"message":"(#4) Application request limit 
reached","type":"OAuthException","is_transient":true,"code":4,"fbtrace_id":"EUNAVRNgnFu"}}`

以下是我在其他地方找到的Facebook Open Graph API限制的详细回复:

Facebook API限制并未真正记录,但显然它类似于:600 calls per 600 seconds, per token & per IP。由于网站受到限制,引用相关部分:

  

经过与Facebook平台团队的一些测试和讨论后,我不知道或可以在文档中找到官方限制。但是,我发现每600秒有600个电话,每个令牌&每个IP都是关于他们阻止你的地方。我也看到了一些基于应用程序的速率限制,但没有任何数字。

     

作为一般规则,每秒一次通话不应受到速率限制。从表面上看,这似乎非常严格,但请记住,您可以批量处理某些调用并使用订阅API进行更改。

您可以通过Javascript SDK访问客户端的Graph API;我认为,如果您从客户端访问您的照片请求,那么您将无法点击任何application limit,因为它是用户(每个人都有唯一身份证)获取数据,而不是您的应用程序服务器(唯一ID)。

如果您所做的一切都通过服务器,这可能意味着一个巨大的重构。但是,如果您有这么多请求(因为它会给您的服务器一个呼吸),它似乎是最好的解决方案。

否则,您可以尝试batch request,但我猜您已经采用了这种方式,如果您的流量很大。

如果没有任何效果,根据Facebook Platform Policy,您应该联系他们。

  

如果您超出或计划超过以下任何阈值,请contact us,因为您可能需要遵守其他条款:(> 5M MAU)或(每天100万次API调用)或( >每天50万次展示。