高效的Facebook页面数据处理

Ser*_*yan 12 facebook facebook-graph-api facebook-access-token

有很多类似的问题,但我找不到任何有用的答案.我创建了Facebook应用程序,并代表该应用程序从Facebook获取页面/发布数据. - 我在页面上有特殊的read_insights权限. - 我为我的Facebook App创建了具有该权限的访问令牌.(将自动延长).今天我遇到了暂时性错误的问题:

Error, Code: 4, Message: Application request limit reached  
Error, Code: 17, Message: User request limit reached
Run Code Online (Sandbox Code Playgroud)

有相关问题的答案(Facebook api:(#4)达到了应用程序请求限制,Facebook OAuth错误:达到了应用程序请求限制).

根据Facebook平台政策,您应该联系他们,如果您超过或计划超过以下任何阈值,请与我们联系,因为您可能需要遵守其他条款:(> 5M MAU)或(>每天100M API调用)或(每天>> 50M印象).我的应用程序在一周内执行了300K呼叫,因此它不应超过这些限制.我已经联系了Facebook,但他们还没有回复.

我想知道从Facebook获取数据的最佳做法是什么.我需要去取

1. /page_id?fields...
2. /page_id/posts?fields...
3. /post_id/likes?fields...
4. /post_id/comments?fields...
5. /page_id/insights/
6. /post_id/insights/
Run Code Online (Sandbox Code Playgroud)

对于2-4我不能使用批处理请求,因为分页结果,我使用limit = 100,对于5-6我已经创建了具有我需要的特定洞察URL的批处理请求,并且已经无法减少调用次数了.

当我面对时

Error, Code: 4, Message: Application request limit reached 
Run Code Online (Sandbox Code Playgroud)

我创建了新的应用程序,用于获取Insights,我同意read_insightsFacebook用户授予权限.然后我面对

Error, Code: 17, Message: User request limit reached
Run Code Online (Sandbox Code Playgroud)

所以我假设如果令牌是由其他拥有read_insights新应用程序权限的用户生成的,那么它可以工作.

有人可以建议什么是最好的方法来解决我的问题?我应该为我的应用程序配置多个页面访问令牌(由不同用户生成),并在发生错误#4或错误#17之一时在它们之间切换?

小智 0

您尝试过以下方法吗?

  • 使用实时更新 API 来获取有关新帖子和帖子新评论的通知,而不是轮询
  • (看起来您正在这样做)确保您使用页面的页面访问令牌来获取该页面的数据,而不是用户或其他页面的令牌
  • 缓存不太可能更改的数据以避免重新获取
  • 在一次调用中请求多个帖子,而不是每次调用一个帖子(使用此处记录的 ?ids=x,y,z 语法: https: //developers.facebook.com/docs/graph-api/making-multiple-requests

使用这些方法你也许能够完全避免遇到这个问题