Ich habe Probleme mit dem Testen meiner App mit der Messenger-Plattform, um die gleiche Nachricht an mehrere Benutzer in einem kleinen Zeitrahmen zu senden. Ich erhalte einen Limit Error: (#613) Calls to this api have exceeded the rate limit.
Messenger Platform Limit Fehler (# 613) Anrufe zu diesem API haben das Ratenlimit überschritten
Momentan teste ich das, indem ich dieselbe Nachricht mehrmals an denselben Benutzer (mich) sende; In einem realen Szenario würde die gleiche Nachricht natürlich an verschiedene Benutzer gesendet werden.
Außerdem verwende ich eine Testanwendung einer Live-App, um diese Tests durchzuführen. Soll sich das in der Live-App drastisch verbessern?
Ich brauche wirklich einen schönen Durchsatz Broadcasting Nachrichten, so derzeit mein Setup hat mehrere Threads spawn (50) Senden von Nachrichten parallel, einige von ihnen bereits diese Grenze und Fehler überschritten. Ich habe auch versucht, die Batch-Anfragen, um die Geschwindigkeit der Lieferung Prozess zu verbessern, und an diesem Punkt wird es wirklich unerträglich, mit einer Erfolgsquote von weniger als 50%.
Ich habe über allgemeine Graph API-Ratenbeschränkungen gelesen (https://developers.facebook.com/docs/graph-api/advanced/rate-limiting), und um eine Nachricht zu senden, die Sie ein Seitenzugriffstoken bereitstellen, würde ich erwarten, dass meine App in die Kategorie "Seitenratenbegrenzung" fällt Ich habe zu viele Nachrichten gesendet. In den Fehlerantworten gibt es jedoch keine X-Page-Usage-Header (übrigens keine X-App-Usage).
In der Dokumentation Messenger Platform (https://developers.facebook.com/docs/messenger-platform/send-api-reference#limits) wird folgendes angegeben:
Messenger Platform supports a high rate of calls to the Send API.
However, you should architect your system such that you distribute any sudden high amounts of load over time and are able to control your throughput should you hit our rate limits.
Rate limits are in place to prevent malicious behavior and poor user experiences.
Be sure to catch any errors returned by the Send API including the one indicating that you've reached the rate limit.
Diese sind entweder nicht besonders hilfreich, da sie den allgemeinen Graph API Grenzen nicht explizit beziehen sich weder eine unterschiedliche Menge angeben von Anfragen, die du ausführen darfst.
Gibt es etwas, das ich vermisse?
_ "Sie sollten Ihr System so aufstellen, dass Sie plötzliche hohe Lastmengen im Laufe der Zeit verteilen und Ihren Durchsatz kontrollieren können, sollten Sie unsere Ratenlimits erreichen" _ - was genau ist das Problem dabei? Sie erkennen, dass Sie an die Grenzen stoßen, da die API diese Fehlermeldung zurückgibt ... also ist es an der Zeit, das Flag $ slowThisShitDown in Ihrer Anwendung zu setzen. – CBroe
Ja, aber das ist immer noch vage varieren.Die Header, die ich erwähnt habe, sind genau so platziert, dass sich Ihre App auf der Grundlage der aktuellen Verwendung des gleitenden Fensters anpassen kann, das Facebook verwendet, um Ihre Graph-API-Anfragen zu begrenzen. Wenn die Sende-API dies nicht zur Verfügung stellt, können Sie Ihre Arbeitslast nicht ordnungsgemäß auf der Grundlage der tatsächlichen Verwendung verteilen. Ich befürchte, dass diese API nicht das gleiche Rate-limiting-Konzept verwendet, aber es wäre schön, einen anderen Wert als "eine hohe Rate von Anrufen" zu haben. – pjpires
Sie können immer einen Dokumentationsfehler einreichen und sie bitten, zu klären, ob etwas unklar ist oder fehlt. Ich bin mir nicht sicher, ob die Sende-API diese Antwort-Header auch senden soll, aber ich stimme zu, dass es nur Sinn ergeben würde. Also würde ich sie fragen, ob es das tun soll und wenn nicht, dass die Dokumentation das zumindest explizit erwähnen sollte. https://developers.facebook.com/bugs/ – CBroe