wake-up-neo.net

Facebook Application Rate Limit # 4 - Juni 2018 Fehler

Facebook scheint einen Fehler in Bezug auf die Grenzwerte zu haben ..__ Der Fehler war zum Zeitpunkt des Schreibens seit mehreren Tagen geöffnet. Ich bin mir sicher, dass jeder weiß, dass dies die Kundenbasis dieser Entwickler stark beeinträchtigt.

Das Anforderungslimit scheint sporadisch zu sein und steht nicht im Einklang mit der Dokumentation. Die tatsächlichen Ratenlimits scheinen drastisch zugenommen zu haben, wobei nur ein Prozentsatz der Anträge im Vergleich zu "normalen" Anforderungen zulässig ist.

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

Hat jemand eine Problemumgehung, Vorschläge oder Erkenntnisse, um dieses Problem zu lösen?

Der ursprünglich eingereichte Fehlerbericht:

In unserer Anwendung ist der Fehler "GraphAPIError: (# 4) Anwendungsanforderungslimit erreicht" aufgetreten. einige Tage. Unsere Anwendung überwacht mehrere unserer Benutzerkonten und holt Daten für jede FB-Seite, und dies hat in den letzten Jahren hat eine Reihe von API-Aufrufen durchgeführt, um Metriken für diese Konten zu erfassen, die würde normalerweise über einen Zeitraum von weniger als zwei Stunden jeden Tag auftreten . Am 25. Mai konnten wir 1% der API-Aufrufe machen, die wir normalerweise machen. über einen Zeitraum von 24 Stunden aufgrund der Anwendungsratenbegrenzung. Am 26. Mai, Wir bekamen 3% der API-Aufrufe, die wir normalerweise innerhalb eines Zeitraums von 24 Stunden machen, fällig auf das gleiche Anwendungsratenlimit. Dann ging es vom 27. bis 29. September. Normalerweise konnten wir in weniger als 2 Stunden 100% der API-Aufrufe machen wir normalerweise ohne Fehler. Am 30. waren wir dann 33% der normalen API-Aufrufe und damit bis heute die 31. Wir konnten 1% der normalen API-Aufrufe durchführen. Nichts hat sich an unserem Ende geändert, und es gibt keinen Grund, warum wir nur .__ sein sollten. 1% der API-Aufrufe können normalerweise einige Tage und nicht für an anderen Tagen, vor allem, da unsere Anwendung das Gleiche getan hat genau seit einigen Jahren. Jede Hilfe, die es zu schätzen wusste.

14
Riaan van Zyl

Wir haben also auch Probleme mit Ratenlimiten. 

Unsere Lösung ist zweifach.

Schritt eins: Für Kunden, die ständig Ratenlimits haben (der Grund ist, dass sie täglich nur einen aktiven Benutzer haben, aber Hunderte von Seiten verwalten), fügen wir der App Benutzer (Mitarbeiterbenutzer) hinzu. Da unsere App für das Planen von Posts vorgesehen ist, haben wir für jeden dieser 'neuen' Benutzer Beiträge für jeden Tag festgelegt. Dadurch wird die Anzahl der täglich aktiven Benutzernummern der Apps erhöht, was zu einem höheren Durchsatz der API führt.

Die längerfristige Lösung besteht darin, dass wir einen neuen Dienst für die Verwaltung aller Aufrufe der API erstellen. Es analysiert den Durchsatz der Apps, drosselt bei Bedarf Dringlichkeitsaufrufe und gibt Aufschluss darüber, welche Anrufe von welchem ​​Kunden/App getätigt werden, damit die ausgehenden Anrufe besser optimiert werden können.

Es ist einfach, einfach ein SDK zu installieren und in die Stadt zu gehen, aber es sieht so aus, als würde es das nicht mehr schneiden.

2
Don Rzeszut

Meine Lösung:

Da wir nur auf den Endpunkt page/{page-id} zugegriffen haben, haben wir die Anzahl der neuen Posts pro Anfrage berechnet und die nächste Anfrage für diese Ressource verzögert. 

Wenn wir also die API abfragen und 1 neues Element von insgesamt 100 Elementen erhalten, würden wir die Wartezeit erheblich erhöhen, bevor dieselbe Ressource (Seiten-ID) erneut aufgerufen wird.

Wenn wir eine Antwort erhalten, die näher an "full" liegt, d. H. 90/10, würden wir die Zeit wieder etwas erhöhen. Auf diese Weise vergeuden wir keine Anfragen, indem wir "veraltete" Daten anfordern.

Wir haben auch sichergestellt, dass Sie nur unsere "Prioritätsseiten" aufrufen, um die Gesamtzahl der Elemente zu reduzieren, die für Anfragen kämpft

Anmerkungen:

  • Das Rate-Limit-Widget im Facebook-Dashboard spiegelt nicht die -Antworten der API wider:

 enter image description here

  • Obwohl das Dashboard die Grenzwerte nicht widerspiegelt, erhalten wir .__ die Benachrichtigungen:

{Anwendungsname} hat 100% des Stundensatzes erreicht. Alle API Aufrufe an Ihre App werden fehlschlagen, bis Ihre App unter die Einschränkung fällt Grenze.

  • Gemäß der Dokumentation ist Code 4 spezifisch für App-Token:

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

  • Bei der Überprüfung der Header wird die Ursache als "total_time" angegeben (Anfragen wurden genau im Abstand von 10 Sekunden gestellt, bis wir eine Antwort von 403 erhalten haben): 

 enter image description here

1
Riaan van Zyl

Meine Bewerbung fragt regelmäßig die Beiträge für mehrere eigene Seiten sowie die Seiten unserer Mitbewerber ab. (Medien-Website, Facebook-Seiten, die auf Nachrichtenartikel verweisen. Wir vergleichen gerne die Beiträge und die Leistung mit der Konkurrenz.)

Um das Problem zu reduzieren, habe ich das App-Token für die Beiträge des Konkurrenten verwendet, aber ein seitenabhängiges Token für unsere eigenen Seitenbeiträge. Dadurch wurde die Anzahl der Anrufe auf dem App-Token erheblich reduziert, wodurch das Ratenlimit wesentlich seltener ausgelöst wurde.

1
SVerhulst

Das hat bei mir funktioniert. Wenn ich mein Skript auf alle 3650 Sekunden auf 200 API-Aufrufe beschränke, wird es vollständig ausgeführt. Diese Zahlen scheinen nahe am besten zu sein, was ich tun kann. Wenn ich die Anzahl der API-Aufrufe schrittweise erhöhen oder die Anzahl der Sekunden schrittweise verringern, schlägt das Skript zeitweise fehl. Wenn ich sie zu sehr ändere, schlägt das Skript konstant fehl.

Dies bedeutet wahrscheinlich, dass einige Skripts nicht an einem Tag abgeschlossen werden können. Zum Glück ist meine in wenigen Stunden erledigt.

0
Zampano

Unsere Anwendung hat das gleiche Problem. Hier sind einige (total) empirische Beweise, die ich sammeln konnte. Unsere Anwendung erhält Daten (Posts und Kommentare) von bestimmten öffentlichen Seiten. Wir verwenden ein APP-Token (kein Benutzer-Token).

Der Ratenlimit-Fehler Nr. 4 scheint immer dann aufzutreten, wenn wir versuchen, Kommentare der zweiten Ebene, dh Kommentare unter anderen Kommentaren, zu erhalten. Gelegentlich passiert es, wenn wir versuchen, die Reaktionen eines Kommentars zu erhalten (sogar Kommentare der ersten Ebene).

Auch dies ist völlig empirisch belegt. Es wäre aber gut zu hören, ob andere Personen diese Ergebnisse nachahmen können.

0
Reinaldo