2012-01-03 89 views
65

我們對Facebook的圖形API做出的調用數量是否有限制? 如果有,那麼我們每天可以爲每個應用打幾次電話?什麼是Facebook的Graph API調用限制?

+0

的[Facebook的圖形API限制疑問](http://stackoverflow.com/questions/5911068/facebook-graph-api-limit-doubt) – 2015-03-28 16:31:50

+0

可能重複的有,但你可以忘掉所有這些,只需使用http://api-turtle.launchrock.com來控制和限制你的API吞吐量 – 2017-09-28 13:29:56

回答

56

的最佳答案從另一個forum

「一些測試和討論Facebook平臺團隊之後這個問題,沒有官方限制我所知道的或可以在文檔中找到的。不過,我已經每600秒發現600元話費,每個令牌&每個IP是在哪裏,他們阻止你。我也看到了一些應用的速率限制,但沒有任何數字。

作爲一般規則,每秒一個呼叫不應受到速率限制,表面上看起來非常嚴格,但請記住,您可以批量調用某個呼叫nd使用訂閱API來獲取更改。「

+2

,那麼whatelse是個問題呢? – 2012-01-03 13:55:41

+0

我對每個訪問令牌或每個應用是600次/ 600秒還是有點困惑。 – 2012-01-03 14:05:33

+0

檢查粗體部分。根據作者的'每令牌和每IP' – 2012-01-03 14:08:43

19

根據Facebook dev policies "I. Features and Functionality"的唯一的限制是:

(>5M MAU) or (>100M API calls per day) or (>50M impressions per day).

(MAU是指每月用戶)

它沒有說什麼,他們會超出限制後做...

今天我已經跑到這個限制:

Calls to mailbox_fql have exceeded the rate of 300 calls per 600 seconds.

總的來說每個表都有不同的限制,在大多數情況下,fql不會爲每個fql返回超過30個對象。另外,在我看來,你可以超過一個表的限制,同時你可以訪問不同的表,問題是api是否被阻止(在超過限制之後)對於所有用戶或者只對超過了限制...無論如何,超過限制後,你必須等待大約10分鐘,比沒關係。

從技術上講,您可以在mailbox_fql表中每10分鐘獲得至多300 * 30個對象。

+0

這些是合同需要到達的閾值,而不是技術上的嚴格限制,Mangobug的回答 – Igy 2012-07-17 20:55:33

+0

並非真正「呼叫mailbox_fql已超過每600秒300次呼叫的速率」。意味着它是一種在現實生活中強制實施的硬限制。這也會表明不同的表格有不同的限制。 (這是真的)。 – 2012-08-21 22:51:05

+0

哦,我想你是正確的,減少撥打電話,我猜 – Igy 2012-08-21 23:45:54

6

從Facebook文檔

用戶級別速率限制

這個速率限制在爲廣告除外API的所有API調用的用戶級應用。

速率限制在滑動窗口上實時發生。 每個電話都被分配一個分數。有一個最高分數爲n。 用戶根據所做的呼叫累積一段時間的分數。 達到最高分數時,將引發限制錯誤。 錯誤,代碼:17,消息:用戶請求限制達到

應用級別速率限制

該速率限制在應用程序級別全局上。廣告API調用被排除在外。

速率限制在過去的一個小時內在滑動窗口上實時發生。 收集的統計信息包括呼叫和查詢次數,花費的CPU時間以及用於每個應用程序的內存。 每個資源的數量都與給定應用的每月活躍用戶數相乘。 當應用程序使用超過其允許的資源時,將引發錯誤。 錯誤,代碼:4,消息:應用請求限制達到

檢查這個文檔 https://developers.facebook.com/docs/reference/ads-api/api-rate-limiting/

+0

哪裏可以做到如何做用戶級調用和應用程序級調用的例子?這一切都經歷了應用程序ID,無論哪個應用程序級別限制?他們對此沒有很好的文檔。 – 2014-07-15 21:12:31

+0

鏈接到文檔是錯誤的。正確的是https://developers.facebook.com/docs/graph-api/advanced/rate-limiting – 2016-11-22 07:49:20

2

根據FB文檔,在分批計數作爲一個單獨的呼叫的每個元素。

We currently limit the number of requests which can be in a batch to 50, but each call within the batch is counted separately for the purposes of calculating API call limits and resource limits. For example, a batch of 10 API calls will count as 10 calls and each call within the batch contributes to CPU resource limits in the same manner.

請檢查:https://developers.facebook.com/docs/graph-api/making-multiple-requests https://developers.facebook.com/docs/marketing-api/api-rate-limiting

31

現在是official

每個應用程序被賦予任何在六十分鐘的窗口每用戶200的API調用的分配。

從Facebook的文件爲2015年10月7日的,這裏的速率限制在圖形API是如何工作的:

  • 速率限制在你的Facebook的AppId做。如果您的應用達到了限速 ,則該應用的所有撥打電話將不僅限於每個用戶的 。
  • 速率限制是通過計算您的應用 前一天的用戶數量並添加今天的新登錄數來計算的。這給出了您的應用擁有的用戶數 。

舉一個例子,如果你的應用程序昨天有10個用戶,今天有5個新登錄,那麼這會給你15個用戶的基礎。這意味着您的應用可以在任何60分鐘的窗口中進行((10 + 5)* 200)= 3000個API調用。

點擊此處瞭解詳情:https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

- 更新爲2016年4月12日的 -

Facebook擁有現在Rate Limit Dashboard,這是看你的應用程序的限速超過容易得多。它看起來像這樣:

enter image description here

+0

AFAIK該限制僅適用於Graph API版本爲2.5及以上的應用程序。舊版應用程序尚未具備此限制。 – Marius 2015-10-23 11:40:16

+0

如果我們達到極限,Facebook有可能返回錯誤'Error:read ECONNRESET'? – 2016-09-14 18:13:32

+0

實際限制不是每個用戶,而是每日活躍用戶的平均值:「您的應用每個用戶每小時可以撥打200個電話,例如,如果您的應用有100個用戶,這意味着您的應用可以製作20,000個電話,這不是每個用戶的限制,所以一個用戶可以撥打19,000個電話,另一個用戶可以撥打1000個電話,這個限制是根據前一小時撥打的電話數量來計算的。「 – 2016-12-05 22:47:44

相關問題