webentwicklung-frage-antwort-db.com.de

Facebook api: (# 4) Anwendungsanforderungslimit erreicht

Seit Ende November haben wir das Anwendungslimit für die Facebook-API erreicht. Wir holen die Fotos des Benutzers und wählen 25 Freunde aus. → Dies geschieht, wenn sich ein Benutzer anmeldet (wir erstellen Alben für die Benutzer).

Die oben genannte Aktion ist begrenzt, wurde aber nicht bis Ende November begrenzt. Wir verwenden Batch-Aufrufe, um Fotos aus Alben abzurufen. Gibt es einen besseren Weg, um diese Informationen abzurufen, ohne eingeschränkt zu sein?

Übrigens, laut Facebook führen wir 1 Million Anrufe pro Tag durch, aber laut unserer Zählung führen wir 180.000 Anrufe pro Tag durch.

Das Abrufen nur der Fotos des Benutzers ohne die Fotos seines Freundes ist für uns keine Lösung.

38
Ronny Elkayam

Das Facebook-API-Limit ist nicht wirklich dokumentiert, aber anscheinend ist es so etwas wie: 600 Anrufe pro 600 Sekunden, pro Token und pro IP . Da die Site eingeschränkt ist, zitieren Sie den relevanten Teil:

Nach einigen Tests und Diskussionen mit dem Facebook-Plattformteam gibt es kein offizielles Limit, das mir bekannt ist oder das ich in der Dokumentation finden kann. Ich habe jedoch festgestellt, dass 600 Anrufe pro 600 Sekunden, pro Token und pro IP ungefähr dort sind, wo sie Sie aufhalten. Ich habe auch einige anwendungsbasierte Ratenbeschränkungen gesehen, aber keine Zahlen.

In der Regel sollte ein Anruf pro Sekunde nicht tariflich begrenzt werden. Oberflächlich betrachtet scheint dies sehr restriktiv zu sein, aber denken Sie daran, dass Sie bestimmte Aufrufe stapelweise ausführen und die Abonnement-API verwenden können, um Änderungen zu erhalten.

Wie Sie auf die Graph-API auf der Clientseite über das Javascript-SDK zugreifen können; Ich denke, wenn Sie Ihre Anfrage nach Fotos vom Kunden reisen, werden Sie keine application limit da der Benutzer (jeder mit einer eindeutigen ID) Daten abruft, nicht Ihr Anwendungsserver (eindeutige ID).

Dies kann einen riesigen Umgestalter bedeuten, wenn alles, was Sie tun, über einen Server läuft. Aber es scheint die beste Lösung zu sein, wenn Sie so viele Anfragen haben (da dies Ihrem Server den Atem rauben wird).

Ansonsten kannst du batch request versuchen, aber ich denke, du gehst schon diesen Weg, wenn du viel Verkehr hast.


Wenn nichts davon funktioniert, sollten Sie sich gemäß der Facebook Platform Policy an sie wenden.

Wenn Sie einen der folgenden Grenzwerte überschreiten oder zu überschreiten beabsichtigen, kontaktieren Sie uns da Sie möglicherweise zusätzlichen Bedingungen unterliegen: (> 5 Mio. MAU) oder (> 100 Mio. API-Aufrufe pro Tag) oder (> 50 Millionen Impressionen pro Tag).

36
Simon Boudrias

Das Facebook "Graph API Rate Limiting" -Dokument besagt, dass ein Fehler mit dem Code #4 ist ein Grenzwert für die App-Level-Rate , der sich von Grenzwert für die User-Level-Rate unterscheidet. Obwohl es keine genauen Zahlen gibt, beschreibt es das App-Level-Ratenlimit wie folgt:

Diese Ratenbegrenzung wird global auf App-Ebene angewendet. Anzeigen-API-Aufrufe sind ausgeschlossen.

  • Die Ratenbegrenzung erfolgt in Echtzeit über ein Schiebefenster von mehr als einer Stunde.
  • Statistiken werden für die Anzahl der getätigten Anrufe und Abfragen, die CPU-Zeit und den für jede App verwendeten Speicher gesammelt.
  • Es gibt ein Limit für jede Ressource, multipliziert mit monatlich aktiven Benutzern einer bestimmten App.
  • Wenn die App mehr als die zulässigen Ressourcen verwendet, wird der Fehler ausgelöst.
  • Fehler, Code: 4, Meldung: Anwendungsanforderungslimit erreicht

Die Dokumente geben auch Empfehlungen zur Vermeidung der Ratenbeschränkungen. Für App-Level-Limits sind dies:

Empfehlungen:

Schließlich enthalten die Dokumente die folgenden Informationstipps:

  • Durch das Batching von Anrufen wird die Anzahl der API-Aufrufe nicht verringert.
  • Durch parallele Anrufe wird die Anzahl der API-Anrufe nicht verringert.
16
Jesse Webb

jetzt Rate auf Anwendungsebene, die 200 Anrufe pro Stunde begrenzt!

sie können dieses Bild sehen . enter image description here

0