Facebook Apps skalieren mit Real-Time Updates und Batch Requests

4.439 Aufrufe

Veröffentlicht am

Gehalten auf der allfacebook devcon.

Veröffentlicht in: Technologie
0 Kommentare
1 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.439
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1.675
Aktionen
Geteilt
0
Downloads
35
Kommentare
0
Gefällt mir
1
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • FolgendeObjektewerdenunterstützt
  • Define routes
  • Define callback function
  • Define callback function
  • Define callback function
  • Evtl. Extra Server für Requests
  • Facebook Apps skalieren mit Real-Time Updates und Batch Requests

    1. 1. FACEBOOKREALTIME UPDATES& BATCH REQUESTS
    2. 2. REALTIME UPDATESECHTZEITWEB (?!)
    3. 3. REALTIME MYAPP MIT GRAPH API » Nutzer besucht die Seite und soll ein Popup sehen wenn einer seiner Freunde sich registriert hat. » (Alternativ: Eine E-Mail bekommen)
    4. 4. REALTIME OHAI! ? !
    5. 5. REALTIME FASTER! FASTER!
    6. 6. REALTIME FASTER! FASTER! » Caching von Daten  Abfrage nur alle 5 Minuten + Weniger Abfragen + Schnellere Ladezeiten - Daten nicht aktuell - Eigentlich keine Lösung des Ur-Problems - Erster Aufruf Langsam (Caching via Web) - Unnötige Abfrage von Daten (Caching via Cronjob)
    7. 7. REALTIME REALTIME API The Graph API supports real-time updates to enable your application using Facebook to subscribe to changes in data from Facebook. Your application caches data and receives updates, rather than polling Facebook’s servers. Caching data and using this API can improve the reliability of your application and decrease its load times. » User (teilw.), Pages, Permissions
    8. 8. REALTIME OHAI! ! 200 / OK
    9. 9. HANDS ONREALTIME
    10. 10. REALTIME MYAPP MIT GRAPH API » Nutzer besucht die Seite und soll ein Popup sehen wenn einer seiner Freunde sich registriert hat. » 1. Service aufsetzten » 2. Änderungen abonnieren » 3. Ausgeben / Weiterverarbeitung
    11. 11. REALTIME PUSH UPDATES ABONNIEREN 1. Set up an endpoint URL that receives both HTTP GET (for subscription verification) and POST (for actual change data) requests from Facebook. » Registrieren eines „Endpoints“ » Verification?  GET = Verification | POST = Updates
    12. 12. REALTIME
    13. 13. REALTIME PUSH UPDATES ABONNIEREN » hub.mode » „subscribe“ (String) » hub.challenge » Zufällige Zeichenfolge (String) » hub.verify_token » „Mein“ Verify token (String)
    14. 14. REALTIME
    15. 15. REALTIME SUBSCRIBE UPDATES » POST an https://graph.facebook.com/<app-id>/subscriptions?access_token=<token> » Content » object (user|permission|pages) » callback_url (http://www.myapp.com/facebook/endpoint) » verify_token (APP_CONFIG[:hub_challenge]) » fields (z.B. „friends,likes“)
    16. 16. REALTIME
    17. 17. REALTIME
    18. 18. REALTIME ANWENDUNGBEISPIELE » Neuer Freund registriert sich » Check-Ins an Freunde pushen » Post des Nutzers synchronisieren » Nutzer erweitert oder schränkt Permissions ein » Neuer like soll auf „deinem“ Portal verwertet werden
    19. 19. REALTIME STOLPERFALLE CHECKIN » AWESOME! Checkin kommt direkt auf unser Portal! » Woohooo! » Freund markiert mich bei Checkin » Zählt nicht als eigener Checkin »  Kein Push Und da gibt es sicher noch einige mehr...
    20. 20. REALTIME SCALING... » Updates alle 5 Sekunden » Gebündelt » Falls updates » (Oder) wenn sich 1000 Requests angesammelt ! haben » „Your server should be set up to handle this load...“ » Keine Info über Erweiterung der API (Roadmap)
    21. 21. BATCH REQUESTREQUESTS BÜNDELN
    22. 22. BATCH RQST ! ! !
    23. 23. BATCH RQST /ME LIKES FRIENDS !
    24. 24. BATCH RQST
    25. 25. BATCH RQST
    26. 26. REALTIME OKAY, WAS GEHT? » POST + GET Request in einem Batch? » FQL QUERY + MULTIQUERY? » Verschiedene Access Tokens in einem Batch? » Dateien Uploaden? » Abhängigkeiten zwischen einzelnen Requests?
    27. 27. BATCH RQST "OMIT_RESPONSE_ON_SUCCESS": FALSE
    28. 28. BATCH RQST ”DEPENDS_ON”: “PUBLISH-MESSAGE”
    29. 29. BATCH RQST AUSBLICK? Realtime Updates + Batch Requests = Epic.
    30. 30. BATCH RQST DOKUMENTATION? » Facebook » Realtime Updates » http://developers.facebook.com/docs/reference/api/realtime/ » Batch Requests » http://developers.facebook.com/docs/reference/api/batch/ » Real-Time API + Spotify » http://www.scribd.com/doc/32403557/Building-real-time-updates-for-the- Graph-API
    31. 31. BATCH RQST INHALTE DER DISKUSSION » Fanpages können komplett abonniert werden, allerdings nur wenn die App hinzugefügt wurde. » Sicherheit: Man kann jeden Request der Real-Time Updates verifizieren. » With every response, Facebook sends the X-Hub-Signature HTTP header which contains the SHA1 signature over the response payload, using the application secret as the key - for example: X-Hub- Signature: sha1=12345.... The consumer can verify the signature to validate the integrity of the payload. » Das Einräumen weiterer Rechte ist keine Hemmschwelle für den Durchschnittsnutzer. » Daten sollten besser über HTTPS Übertragen werden (allerdings nicht Pflicht). » Nur eine Person bei Facebook Arbeitet an der Realtime API, allerdings hat Facebook Interesse daran dieses Feature weiter zu entwickeln.
    32. 32. KONTAKT Florian Bergmann twitter: @flobby http://facebook.com/florian.bergmann WANTED: RUBY ON RAILS ANYWHERE, JAVASCRIPT ANYLEVEL, NINJAS PART/FULLTIME/FREELANCE Copyright: Diese Präsentation ist urheberrechtlich geschützt. Jede Verwertung, Weitergabe oder Verwendung ohne Zustimmung durch flobbymedia ist unzulässig. Die Inhalte dieser Präsentation sind vertraulich zu behandeln. Die Weitergabe von Informationen und Inhalten an Dritte ist unzulässig. Disclaimer: Alle Zahlen und Daten wurden nach bestem Wissen und Gewissen recherchiert. Eine Garantie für Daten von Dritt-Anbieten kann allerdings nicht übernommen werden.

    ×