2015-07-21 36 views
12

有很多類似的問題,但我找不到任何有用的答案。 我已經創建Facebook應用程序,並代表該應用程序從Facebook獲取Page/Post數據。 - 我在頁面上有特殊的read_insights權限。 - 我爲我的Facebook應用程序創建了具有該權限的訪問令牌。 (這將自動擴展)。 今天我面對問題得到暫時性錯誤:高效的Facebook頁面數據處理

Error, Code: 4, Message: Application request limit reached 
Error, Code: 17, Message: User request limit reached 

有相關的這些問題(Facebook api: (#4) Application request limit reachedFacebook OAuth Error: Application request limit reached)的答案。

根據Facebook平臺政策,您應該與他們聯繫, 如果您超過或打算超過以下任何閾值,請聯繫我們,因爲您可能會受到附加條款:(> 5M MAU)或(>每天100M API調用)或(每天> 5000萬次展示)。 我的應用在一週內進行了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/ 

2-4,我不能使用,因爲分頁結果批量要求,我正在與限= 100,5-6我已創建了具體的洞察力網址批量請求,我需要,而且已經不能再減少通話次數。

當我面對

Error, Code: 4, Message: Application request limit reached 

我創造了新的應用程序和獲取洞察授予我read_insights許可後,由同Facebook的用戶。 後來我面對

Error, Code: 17, Message: User request limit reached 

所以我認爲,如果令牌將被誰擁有read_insights權限的新應用它可以工作的其他用戶生成。

有人可以建議什麼是解決我的問題的最佳方法?我應該爲我的應用程序配置多個頁面訪問令牌(由不同的用戶生成),並在其中一個令牌發生錯誤#4或錯誤#17時在它們之間切換?

+0

您正在使用什麼樣的訪問令牌?我猜一個頁面訪問令牌? – Tobi

+0

我正在使用通過圖形瀏覽器爲我的應用程序生成的頁面訪問令牌,其中具有用於洞察的讀取洞察滲透,其餘基本應用令牌被使用(app_id | app_secret)。 –

回答

0

您是否嘗試過以下方法?

  • 使用實時更新的API收到有關新職位和新崗位的意見,而不是投票
  • (看起來像你這樣做),保證您使用的頁面訪問令牌的頁面獲取該頁面的數據,而不是用戶或其他頁面的令牌
  • 緩存不太可能改變的數據以避免重新獲取
  • 請求在一次調用中請求多個帖子而不是每次調用一個帖子(使用?這裏記錄的ids = x,y,z語法:https://developers.facebook.com/docs/graph-api/making-multiple-requests

使用這些方法,您可能可以完全避免碰到這個問題

+0

我需要獲取實時前的歷史數據,所以我必須使用參數... –

+0

對於多個請求,Facebook實際上將它們計算爲多次調用,而不是一次,它們考慮到多種因素(包括它們使用的cpu和內存)撥打電話 –

+0

在最壞的情況下,我打算安排一些批量請求的呼叫,並有一些最佳時間間隔,但期待其他解決方案 –