80 votes

Quelle est la limite d'appel de l'API graphique de Facebook ?

Y a-t-il une restriction dans le nombre d'appels que nous faisons à l'api graphique de Facebook ? Et si c'est le cas, combien d'appels pouvons-nous faire par application et par jour ?

0 votes

59voto

mangobug Points 2016

La meilleure réponse à cette question d'un autre forum de Ash Rust en 2010 :

"Après quelques tests et discussions avec l'équipe de la plateforme Facebook, il n'y a pas de limite officielle dont j'ai connaissance ou que je peux trouver dans la documentation. Cependant, j'ai trouvé 600 appels par 600 secondes, par jeton et par IP pour être à peu près où ils vous arrêtent. J'ai également vu des limitations de taux basées sur les applications, mais je n'ai pas de chiffres.

En règle générale, un appel par seconde ne devrait pas faire l'objet d'une limitation de débit. En apparence, cela semble très restrictif, mais n'oubliez pas que vous pouvez regrouper certains appels et utiliser l'API d'abonnement pour obtenir des modifications."


Les informations ci-dessus sont désormais obsolètes depuis octobre 2015. Il s'agit maintenant 200 appels API par utilisateur dans une fenêtre donnée de 60 minutes en fonction de https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

0 votes

Je ne sais pas si c'est 600 appels / 600 secondes par jeton d'accès ou par application.

0 votes

Vérifiez la partie en gras. Selon l'auteur, "par jeton et par IP".

12 votes

@mangobug Per Token and per IP signifie quoi exactement ? Cela signifie-t-il que je peux doubler le nombre d'appels si j'utilise le même jeton dans 2 IP différentes ? Puis-je doubler le nombre d'appels si j'ai 2 jetons d'accès, toujours à partir de la même IP ?

48voto

Alfeu Points 746

Maintenant, c'est officiel :

Chaque application reçoit une allocation de 200 appels API par utilisateur dans une fenêtre donnée de 60 minutes .

Extrait de la documentation de Facebook à partir de 7 octobre 2015 Si vous avez besoin d'aide, voici comment fonctionne la limitation du débit sur l'API graphique :

  • La limitation du taux est effectuée sur votre AppId Facebook. Si votre application atteint une limite de débit, tous les appels effectués pour cette application seront limités, et pas seulement sur une par utilisateur.
  • La limitation du taux est calculée en prenant le nombre d'utilisateurs de votre application le jour précédent et en ajoutant les nouvelles connexions du jour. Cela donne une base nombre d'utilisateurs de votre application.

Par exemple, si votre application comptait 10 utilisateurs hier et 5 nouvelles connexions aujourd'hui, cela vous donne une base de 15 utilisateurs. Cela signifie que votre application peut effectuer ((10 + 5) * 200) = 3000 appels API dans une fenêtre de 60 minutes.

Plus d'informations ici : https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

-- Mise à jour en date du 12 avril 2016 --

Facebook a maintenant un Tableau de bord des limites de taux Il est beaucoup plus facile de voir si la limite de débit de votre application est dépassée. Cela ressemble à ceci :

enter image description here

0 votes

Pour l'instant, la limite ne s'applique qu'aux applications dotées de l'API graphique version 2.5 et supérieure. Les applications plus anciennes n'ont pas encore cette limite.

0 votes

Est-il possible que si nous atteignons la limite, facebook nous renvoie l'erreur Error: read ECONNRESET ? ??

0 votes

La limite réelle n'est pas par utilisateur, c'est une moyenne pour les utilisateurs actifs quotidiens : "Votre application peut effectuer 200 appels par heure et par utilisateur au total. Par exemple, si votre application compte 100 utilisateurs, cela signifie que votre application peut passer 20 000 appels. Il ne s'agit pas d'une limite par utilisateur. Un utilisateur peut donc passer 19 000 de ces appels et un autre en passer 1 000. Cette limite est calculée sur la base du nombre d'appels passés au cours de l'heure précédente."

20voto

Visgean Skeloru Points 541

Selon Politiques de Facebook en matière de développement "I. Caractéristiques et fonctionalités". les seules limites sont :

(>5M MAU) ou (>100M appels API par jour) ou (>50M impressions par jour).

(Mau signifie utilisateurs mensuels)

Il ne dit pas ce qu'ils feront après avoir dépassé les limites...

Aujourd'hui, j'ai couru vers cette limitation :

Les appels à la boîte aux lettres_fql ont dépassé le taux de 300 appels par 600 secondes.

Dans l'ensemble, chaque table a des limites différentes, dans la plupart des cas, les fql ne renvoient pas plus de 30 objets par fql. Il me semble également que vous pouvez dépasser les limites d'une table et en même temps vous pouvez accéder à d'autres tables, la question est de savoir si l'api est bloquée (après avoir dépassé la limite) pour tous les utilisateurs ou seulement pour l'utilisateur qui a dépassé les limites... Quoi qu'il en soit, après avoir dépassé la limite, vous devez attendre environ 10 minutes, puis tout va bien.

Donc, techniquement parlant, vous pouvez obtenir au maximum 300*30 objets par 10 minutes dans la table mailbox_fql.

0 votes

Il s'agit de seuils à partir desquels un contrat doit être mis en place, et non de limites techniques strictes, qui figurent dans la réponse de Mangobug.

0 votes

Pas vraiment "Les appels à la boîte aux lettres_fql ont dépassé le taux de 300 appels par 600 secondes." signifie que c'est une limite stricte qui a été appliquée dans la vie réelle. cela suggérerait également qu'il y a une limite différente pour chaque tableau. (Ce qui est vrai).

6voto

Ansen1024 Points 31

Extrait de la documentation de facebook

Limitation du débit au niveau de l'utilisateur

Cette limitation de débit est appliquée au niveau de l'utilisateur pour tous les appels d'api, à l'exception des apis de publicité.

Les limitations de taux se produisent en temps réel sur une fenêtre glissante. Un score est attribué à chaque appel. Le score maximum est de n. L'utilisateur accumule un score au fil du temps en fonction des appels effectués. Lorsque le score maximum est atteint, l'erreur de limitation de débit est déclenchée. Erreur, Code : 17, Message : Limite de demande de l'utilisateur atteinte

Limitation du débit du niveau de l'application

Cette limitation de débit est appliquée globalement au niveau de l'application. Les appels à l'api Ads sont exclus.

La limitation du débit se fait en temps réel sur une fenêtre glissante pour la dernière heure. Les statistiques sont collectées pour le nombre d'appels et de requêtes effectuées, le temps processeur passé, la mémoire utilisée pour chaque application. Il y a une limite pour chaque ressource multipliée par les utilisateurs actifs mensuels d'une application donnée. Lorsque l'application utilise plus de ressources que celles qui lui sont allouées, une erreur est déclenchée. Erreur, Code : 4, Message : Limite de demande d'application atteinte

consultez cette documentation https://developers.facebook.com/docs/reference/ads-api/api-rate-limiting/

0 votes

Où se trouve un exemple de la façon dont vous pouvez faire des appels au niveau de l'utilisateur et des appels au niveau de l'application ? Tout passe par l'identifiant de l'application, quelle que soit la limite au niveau de l'application ? Ils ne sont pas très bons avec la documentation sur ce sujet.

0 votes

Le lien vers la documentation est erroné. Le lien correct est développeurs.facebook.com/docs/graph-api/advanced/rate-limiting

0 votes

Cette réponse concerne l'API Marketing, et non l'API Graphique comme le demande le PO.

3voto

Mujibur Points 736

Selon la documentation de FB, chaque élément d'un lot compte comme un appel séparé.

Nous limitons actuellement à 50 le nombre de requêtes qui peuvent être dans un lot, mais chaque appel dans le lot est compté séparément aux fins du calcul des limites d'appel API et des limites de ressources. Par exemple, un lot de 10 appels d'API comptera pour 10 appels et chaque appel du lot contribuera de la même manière aux limites de ressources CPU.

Veuillez vérifier ceci : https://developers.facebook.com/docs/graph-api/making-multiple-requests https://developers.facebook.com/docs/marketing-api/api-rate-limiting

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X