web-dev-qa-db-fra.com

Limite de taux d'application Facebook # 4 - Juin 2018 Bug

Facebook semble être confronté à un bogue en ce qui concerne ses limites de taux ... Le bogue est ouvert depuis plusieurs jours au moment de la rédaction de cet article. .__ Je suis sûr que tout le monde sait que cela affecte gravement la clientèle de ces développeurs.

La limite de demandes semble sporadique et n'est pas conforme à la documentation . Les limites de taux réelles semblent avoir considérablement augmenté, ne permettant qu'un pourcentage de demandes par rapport à la demande "normale". Plusieurs personnes semblent être concernées:

https://developers.facebook.com/support/bugs/169774397034403/

Quelqu'un at-il mis en place des solutions, des suggestions ou des idées pour résoudre ce problème?

Le rapport de bogue original soumis:

Notre application a été confrontée à l'erreur "GraphAPIError: (# 4) Application maximum atteinte" par le passé plusieurs jours. Notre application surveille plusieurs de nos comptes utilisateurs et extrait des données pour chaque page FB, et cela depuis quelques années effectué un certain nombre d’appels d’API pour rassembler des métriques sur les comptes qui se produirait normalement sur une période de moins de deux heures chaque jour . Le 25 mai, nous avons pu effectuer 1% des appels API que nous effectuons normalement sur une période de 24 heures en raison de la limite de taux d'application. Le 26 mai, nous avons reçu 3% des appels d'API que nous passons normalement sur une période de 24 heures en raison de à la même limite de taux d'application. Puis pour le 27-29, il est allé De retour à la normale, en moins de 2 heures, nous avons pu fabriquer 100% du Les appels d'API que nous faisons normalement, sans erreur. Puis le 30 nous étions capable de faire 33% des appels d'API normaux, et à ce jour pour aujourd'hui le Le 31, nous avons pu effectuer 1% des appels d’API normaux. Rien a changé de notre côté, et il n'y a aucune raison pour que nous ne soyons que capable de faire 1% des appels de l'API font normalement quelques jours et non pour autres jours, surtout depuis que notre application a fait la même chose chose exacte depuis plusieurs années maintenant. Toute aide, il a apprécié.

14
Riaan van Zyl

Nous avons donc également des problèmes avec les limites de taux. 

Notre solution est double.

La première étape, pour les clients qui se heurtent régulièrement à des limites tarifaires (la raison en est qu’ils n’ont qu’un utilisateur actif quotidien, mais gèrent des centaines de pages), nous ajoutons des utilisateurs (utilisateurs salariés) à l’application. Puisque notre application sert à programmer des publications, nous publions chaque jour des publications sur chacun de ces "nouveaux" utilisateurs. Cela remplace le nombre d'utilisateurs actifs quotidiens des applications, ce qui augmente le débit de l'API.

La solution à long terme consiste à créer un nouveau service permettant de gérer tous les appels d’API. Il analysera le débit des applications, limitera le nombre d'appels d'api au besoin et fournira des informations sur les appels passés et par client/application afin d'optimiser l'optimisation des appels sortants.

Il est facile d'installer un SDK et d'aller en ville, mais il semble que cela ne va plus la couper.

2
Don Rzeszut

Ma solution:

Comme nous n'accédions qu'au point final page/{page-id} , nous avons calculé le nombre de nouvelles publications par demande et retardé la demande suivante pour cette même ressource. 

Par conséquent, si nous interrogions l'API et recevions un nouvel élément sur un total de 100, nous augmenterions considérablement le délai d'attente avant que cette même ressource (id-page) ne soit appelée à nouveau.

Lorsque nous recevons une réponse plus proche de la réponse "complète", c'est-à-dire 90/10, nous augmentons légèrement le délai. De cette façon, nous ne gaspillons pas les demandes en demandant des données "obsolètes".

Nous nous sommes également assurés d’appeler uniquement nos "pages prioritaires", réduisant ainsi le nombre total d’éléments contestant les demandes.

Remarques:

  • Le widget Rate-Limit sur le tableau de bord Facebook ne reflète pas les réponses De l'API:

 enter image description here

  • Bien que le tableau de bord ne reflète pas les limites, nous recevons Les notifications:

{Nom de l'application} a atteint 100% de la limite de taux horaire. Toutes les API les appels vers votre application échoueront jusqu'à ce que votre application tombe en dessous de la limitation limite.

  • Selon la documentation, le code 4 est spécifique aux jetons d'application:

https://developers.facebook.com/docs/graph-api/advanced/rate-limiting

  • L'inspection des en-têtes révèle que la cause en est le "total_time" (les demandes ont été effectuées à 10 secondes d'intervalle, jusqu'à ce que nous recevions une réponse 403): 

 enter image description here

1
Riaan van Zyl

Mon application interroge régulièrement les messages pour plusieurs des nôtres ainsi que pour les pages de nos concurrents. (Pages Facebook du site Web des médias renvoyant à des articles de presse. Nous aimons comparer les messages et les performances à la concurrence.)

Ce que j'ai fait pour réduire le problème est d'utiliser le jeton d'application pour les publications du concurrent, mais d'utiliser un jeton spécifique à la page pour nos propres publications de page. Cela a considérablement réduit le nombre d'appels sur le jeton de l'application, ce qui a eu pour effet de réduire considérablement la limite de débit.

1
SVerhulst

C'est ce qui a fonctionné pour moi. Si je limite mon script à 200 appels d'API toutes les 3650 secondes, il s'exécutera jusqu'au bout. Ces chiffres semblent être proches du mieux que je puisse faire. Si j'augmente progressivement le nombre d'appels d'API ou le nombre de secondes, le script échoue par intermittence. Si je les change trop, le script échoue systématiquement.

Cela signifie probablement que certains scripts ne pourront pas être terminés en un jour. Heureusement, le mien se termine en quelques heures.

0
Zampano

Notre application a le même problème. Voici quelques preuves (totalement) empiriques que j'ai pu rassembler. Notre application récupère les données (publications et commentaires) de certaines pages publiques. Nous utilisons un jeton APP (pas d'utilisateur).

L'erreur de limite de débit n ° 4 semble toujours se produire lorsque nous essayons d'obtenir des commentaires de deuxième niveau, c'est-à-dire des commentaires sous d'autres commentaires. Et arrive parfois lorsque nous essayons d'obtenir les réactions d'un commentaire (même les commentaires de 1er niveau).

Encore une fois, ceci est une preuve totalement empirique. Mais il serait bon d'entendre si d'autres personnes peuvent reproduire ces résultats.

0
Reinaldo