我读了几篇关于Facebook Graph Api对请求设置600秒内600个请求的限制的帖子。
这个问题是关于我所面临的问题的一些澄清。 我正在执行请求,对于FB图来说非常简单:
所以,我从家里跑了
curl https://graph.facebook.com/v2.0/?id=https://www.example.com/article/the-name-of-the-article/
(使用斜杠并非微不足道)
这给了我空洞的结果:
{
"share": {
"comment_count": 0,
"share_count": 605
},
"og_object": {
"id": "XXXXX6ZZ70301002",
"description": "text",
"title": "title",
"type": "article",
"updated_time": "2019-03-09T00:15:06+0000"
},
"id": "https://www.example.com/article/the-name-of-the-article"
}
我从网站上的js代码中获取了网址。 取而代之的是,仍然从本地网络在相同的URL上运行Scrapy搜寻器,结果与我相同:
{
"share": {
"comment_count": 0,
"share_count": 605
},
"og_object": {
"id": "XXXXX6ZZ70301002",
"description": "text",
"title": "title",
"type": "article",
"updated_time": "2019-03-09T00:15:06+0000"
},
"id": "https://www.example.com/article/the-name-of-the-article"
}
目前这还不错,并且js代码抓取系统似乎正在运行。结果包含js调用FB Graph的所有信息。
在服务器端,搜寻器按预期运行,但仔细查看结果,不存在来自js代码执行的信息。 我已经检查了整个代码,在其他网址中也触发了js操作以提供html内容,并且该代码实际上正常工作。
然后,重复简单的操作:
curl https://graph.facebook.com/v2.0/?id=https://www.example.com/article/the-name-of-the-article
这次是从服务器ip答复:
{
"error": {
"message": "(#4) Application request limit reached",
"type": "OAuthException",
"is_transient": true,
"code": 4,
"fbtrace_id": "ErXXXXZZrOn"
}
}
关于ip块,该代码无法传递600个以上的请求。实际上,它向图形API发送的请求少于10个。
很显然,从js请求到服务器端Fb Graph Api的信息丢失了。
我尝试从不同的服务器,不同的提供程序检查云提供程序上是否存在Ip筛选器,但事实并非如此,因为在每台服务器中结果都是相同的。
这是怎么回事?
为什么从服务器ip地址触发js请求后,它们没有获得有效的响应数据? (因为它给出了错误OAuthException:也使用curl命令达到了应用程序请求限制)
感谢任何线索