Facebook-API-Antworten sehr langsam (oAuth)

8

Ich mache einige Benchmark-Tests in meiner Web-App und stelle fest, dass die Antworten von Facebooks API viel langsamer sind als bei Twitter.

** Für die Aufzeichnung verwende ich die twitter-async Bibliothek für die Twitter API Integration und Facebooks eigene Bibliothek < a href="https://github.com/facebook/php-sdk/"> hier

Mit der Twitter-Bibliothek kann ich einen oAuth-Token & amp; Geheimnis, ich benutze diese dann, um eine Instanz zu erstellen und Anrufe zu tätigen, einfach. Für Facebook muss ich, wenn ich nicht nach offline_permission frage, einen oAuth-Code speichern und jedes Mal, wenn sich der Benutzer bei meiner App anmeldet, ein oAuth-Zugriffstoken erstellen.

Angesichts der oben genannten kann ich:

Abrufen einer Timeline für Twitter-Nutzer in 0,02 Sekunden .

Erhalte einen FB oAuth Zugriffscode in 1,16 Sekunden , dann kann ich die Nutzerdetails in 2,31 Sekunden abrufen, insgesamt 3,47 Sekunden die Benutzerdetails.

Diese Statistiken stammen aus Funktionen, die Facebook in seiner PHP-API-Bibliothek bereitgestellt hat. Ich habe auch versucht, meine eigenen CURL-Funktionen zu implementieren, um diese Informationen über eine Anfrage zu erhalten, und die Ergebnisse sind nicht viel besser.

Ist das die gleiche Art von Antwortzeiten, die andere mit der Facebook API erhalten?

Wie kann ich außer dem Anfordern der Offline-Berechtigung und dem Speichern des Permanent-Access-Tokens diese Anfragen noch beschleunigen, ist das Problem mein Ende oder Facebook?

Danke,

Chris

    
user674952 24.03.2011, 13:20
quelle

2 Antworten

7

Ich habe auch die Erfahrung, dass die Facebook-API ziemlich langsam ist. Ich glaube, dass die PHP-API von Facebook nicht viel mehr als CURL im Falle von API-Aufrufen umgeht, so dass es sinnvoll ist, dass dies die Geschwindigkeit nicht verbessert.

Ich arbeite auf einer Canvas-Seite, was bedeutet, dass ich für bestehende Benutzer ein Zugangs-Token und fb_UID bekomme, wenn er / sie reinkommt. Zuerst habe ich einen / me Graph-Call und manchmal ein / me / friends gemacht. Die erste dauert etwa 0,6 Sekunden, die zweite in der Regel ein bisschen mehr. In diesem Fall kann ich (teilweise) Ihre Ergebnisse bestätigen.

Aus diesem Grund habe ich jetzt wichtige Dinge lokal gespeichert und nur bei Bedarf aktualisiert (Echtzeit-Update-API). Im Grunde brauche ich keine API-Aufrufe während des normalen Betriebs.

Ich realisiere, dass Sie wahrscheinlich FB auf Ihrer eigenen Seite integrieren und vielleicht ein bisschen mehr Informationen als nur Name, fb-UID & amp; Freunde, und dass diese Lösung Ihre Frage nicht vollständig beantwortet. Aber vielleicht kann es immer noch als kleines Teil des Puzzles funktionieren;)

Ich freue mich auch auf andere Perspektiven!

    
Jochem 24.03.2011, 13:34
quelle
0

Meine Anwendung ruft mehrere URLs von Facebook auf. Es dauert einige Zeit: / Aus diesem Grund habe ich beschlossen, eine Funktion zu schreiben, die die Ergebnisse in $ _SESSION speichert, damit ich sie später wieder verwenden kann, zusammen mit einem Zeitstempel, um zu sehen, ob die Daten zu alt sind.

Dies löst das eigentliche Problem nicht, es speichert nur, dass Sie es weiter holen müssen.

Was ich gerne für die Endbenutzererfahrung tue, ist, sie mit einer .gif-Seite an die Seite weiterzuleiten - dann muss JavaScript die Seite anfordern, die tatsächlich Daten abruft. Auf diese Weise bleibt der Benutzer auf einer Ladeseite mit einem schönen gif stehen, bis die nächste Seite fertig ist.

    
Rob 11.02.2012 23:48
quelle

Tags und Links