FACEBOOK PLACES - Scan the Places (by Stephan Alber @ AllFacebook Developer Conference)

5,583 views

Published on

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,583
On SlideShare
0
From Embeds
0
Number of Embeds
1,536
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

FACEBOOK PLACES - Scan the Places (by Stephan Alber @ AllFacebook Developer Conference)

  1. 1. Facebook Places „Scan the Places“ +Places im neuen Open Graph FranciMedia, AllFacebook Developer 1 Converence, 5. Dezember 2011
  2. 2. About me Stephan Alber (FranciMedia) / Freier Entwickler - Über 10 Jahre Berufserfahrung (Gründung erstes Social Network im Jahr 2001) - Werdegang - Quereinsteiger: Vom Nightlife Mensch (Presse, Promotion, Fotografie, Veranstalter) zum Software-Entwickler - Bachelor of Science „Online Media“, HS Furtwangen - Kunden im deutsch-sprachigem Raum sowie USA (Branchen: IT, Lebensmittel, Sport, Presse, Verbände, Tourismus, Agenturen, … - Über 200 publizierte Facebook Apps - Spezialisierung: Facebook, PHP, HTML, JS, CSS, ORM (Doctrine, Propel), Codeigniter, Symfony, etc. - Freizeitprojekte, Bspweise „Atomkraft? Nein Danke!“ – Über 500.000 Nutzer, in den Medien: ZDF Login, Stern online, etc. FranciMedia, AllFacebook Developer 2 Converence, 5. Dezember 2011
  3. 3. Scan the PlacesWarum scannen?- Statistiken- Datenabgleich für Apps FranciMedia, AllFacebook Developer 3 Converence, 5. Dezember 2011
  4. 4. Fallbeispiel fürDatenabgleich:Gipfelstürmer (Triol)http://vimeo.com/28065621 FranciMedia, AllFacebook Developer 4 Converence, 5. Dezember 2011
  5. 5. Was ist ein Place? Beispiel Timesquare August 2011: 250.000 Checkins Dezember 2011: 350.000+ Checkins Zuwachs in 4 Monaten: ca. 40% „Were here“ != „checkins“ http://www.facebook.com/timessquarenyc?sk=info FranciMedia, AllFacebook Developer 5 Converence, 5. Dezember 2011
  6. 6. Datenstruktur – Facebook Place Objekt "id": "39875583837", "name": "Times Square NYC", "picture": "http://profile.ak.fbcdn.net/hprofile-ak-ash2/373361_39875583837_1657282510_s.jpg", "link": "http://www.facebook.com/timessquarenyc", "likes": 353878, "category": "Local business", "website": "http://www.TimesSquareNYC.org", "username": "timessquarenyc", "description": "The Official source of Times Square", "location": { "street": "1560 Broadway u0040 the Crossroads of the World", "city": "New York", "state": "NY", "country": "United States", "zip": "10036", "latitude": 40.758107033743, "longitude": -73.98555055563 }, "public_transit": "42nd Street/Times SquarenA,C,E,1,2,3,N,R,Q,W,S,7", "phone": "(212) 768-1560", "can_post": true, "checkins": 367644, "talking_about_count": 24250 FranciMedia, AllFacebook Developer 6 Converence, 5. Dezember 2011
  7. 7. Grundschritte – Scanvorgang 1. Region eingrenzen 2. Scanner Punkte erstellen – Grund • Vergleichbarkeit der Daten über unterschiedliche Zeiträume • Fortschritt (%) / DB Zustand • Zur Vermeidung doppelter Scan-Vorgänge – Punkte festlegung über: • x/y Raster • Radial (Sprialfunktion) – Eigenschaften • Geo-Position (latitude/longitude) • Uhrzeit des letzten Scans 3. Scannen Archimedische Spirale Quelle: Wikipedia FranciMedia, AllFacebook Developer 7 Converence, 5. Dezember 2011
  8. 8. Code-Beispiel: Scan-Request <?php public static function getNearbyPlaces($latitude, $longitude, $region_id, $distance = 1000, $debug = false) { $access_token = sfConfig::get(app_offline_access_token); $url = "https://graph.facebook.com/search?type=place&center=" . $latitude . "," . $longitude . "&distance=" . $distance; $data = file_get_contents($url); $data = json_decode($data); foreach ($data->data as $key => $row) { if ($Place = self::createPlaceByCoordinates($row->name, $row->location->latitude, $row->location->longitude, $row- >id, $region_id, false, $debug)) { $Place->getFacebookInfo(); $Place->free(); } } } FranciMedia, AllFacebook Developer 8 Converence, 5. Dezember 2011
  9. 9. Scan-Ergebnisse* Manhattan – ca. 100.000 places – ca. 7.000.000 checkins – 72 checkins per place (avg) Berlin (Mitte) – ca. 30.000 places – ca. 1.000.000 checkins – 38 checkins per place (avg) *: August 2011; Kein Anspruch auf Vollständigkeit (!) FranciMedia, AllFacebook Developer 9 Converence, 5. Dezember 2011
  10. 10. Places Heatmap Graphische Darstellung der Daten Satelliten Karte Heatmap Quelle: wikipedia  rot = warm  grün = neutral  Blau = kalt FranciMedia, AllFacebook Developer 10 Converence, 5. Dezember 2011
  11. 11. Beispiel Ergebnis – Places in Manhattan (NYC) Bildmaterial: Google Maps FranciMedia, AllFacebook Developer 11 Converence, 5. Dezember 2011
  12. 12. Beispiel Ergebnis – Bars in Manhattan (NYC) Bildmaterial: Google Maps FranciMedia, AllFacebook Developer 12 Converence, 5. Dezember 2011
  13. 13. Beispiel Ergebnis – Bars in Manhattan (NYC) Bildmaterial: Google Maps FranciMedia, AllFacebook Developer 13 Converence, 5. Dezember 2011
  14. 14. „Scan the Places“ - Live Demo Demo URL: places.fmhosting.de/heatmap/index/10 FranciMedia, AllFacebook Developer 14 Converence, 5. Dezember 2011
  15. 15. Places im neuen Open GraphCrash Kurs:• Objekt mit „Map“-Eigenschaften erstellen • Datentyp: GeoPoint• Aktion erstellen • Attachment Layout • Positionsbezug• Zusammenfassung/Aggregation erstellen• Anwendungsbeispiel• Code-Beispiele (HTML, JS, PHP) FranciMedia, AllFacebook Developer 15 Converence, 5. Dezember 2011
  16. 16. Objekt bearbeiten• Allgemeine Eigenschaften: • URL, Titel, Bild, Beschreibung, …• Position • Datentyp - GeoPoint: Latitude, Longitude, Altitude• Weitere Eigenschaften • Checkins, Likes, Altitude* FranciMedia, AllFacebook Developer 16 Converence, 5. Dezember 2011
  17. 17. Objekt bearbeiten – Bsp „Mountain“ FranciMedia, AllFacebook Developer 17 Converence, 5. Dezember 2011
  18. 18. Objekt bearbeiten – Bsp „Mountain“ FranciMedia, AllFacebook Developer 18 Converence, 5. Dezember 2011
  19. 19. Objekt bearbeiten – Bsp „Mountain“ FranciMedia, AllFacebook Developer 19 Converence, 5. Dezember 2011
  20. 20. Code-Beispiel: META-Tags • Meta-Tags Code wird in Head-Tag eingefügt • pro Objekt eine URL FranciMedia, AllFacebook Developer 20 Converence, 5. Dezember 2011
  21. 21. Code-Beispiel: META-Tags Objekt debuggen über: http://developers.facebook.com/tools/debug/ Bsp. Test URL: http://developers.facebook.com/tools/debug/og/object?q=http://summiteer.fmhosting.de/app/place/514 FranciMedia, AllFacebook Developer 21 Converence, 5. Dezember 2011
  22. 22. Aktion bearbeiten• Allgemeine Eigenschaften: • URL, Titel, Bild, Beschreibung, …• Position • Datentyp - Geopoint: Latitude, Longitude, Altitude• Weitere Eigenschaften • Checkins, Likes, Altitude* FranciMedia, AllFacebook Developer 22 Converence, 5. Dezember 2011
  23. 23. Aktion bearbeiten – Bsp „Climb“ FranciMedia, AllFacebook Developer 23 Converence, 5. Dezember 2011
  24. 24. Aktion bearbeiten – Bsp „Climb“ FranciMedia, AllFacebook Developer 24 Converence, 5. Dezember 2011
  25. 25. Aggregation• Zusammenfassung von Aktioneneines Nutzers (im Zeitraum X)• Darstellungsformen: • Listen • Galerien • Tabellen • Karte • Artikel • Zahl/Statistik FranciMedia, AllFacebook Developer 25 Converence, 5. Dezember 2011
  26. 26. Aggregation: Single Action FranciMedia, AllFacebook Developer 26 Converence, 5. Dezember 2011
  27. 27. Aggregation: Multiple Actions FranciMedia, AllFacebook Developer 27 Converence, 5. Dezember 2011
  28. 28. Beispielanwendung / User-Perspektive FranciMedia, AllFacebook Developer 28 Converence, 5. Dezember 2011
  29. 29. Code-Beispiel <?php $query = array(); $query[mountain] = http:// . $_SERVER[SERVER_NAME] . url_for(app/place?place_id= . $Place->id); $query[place] = $Place->fb_id; ?> <script type="text/javascript"> function execAction(action) { FB.api(/me/summiteer:+action+?<?php echo http_build_query($query); ?>,post, function(response) { console.log(response); if (!response || response.error) { alert(Error occured); } else { alert(Post was successful! Action ID: + response.id); } }); } </script> FranciMedia, AllFacebook Developer 29 Converence, 5. Dezember 2011
  30. 30. Code-Beispiel für „Route“ <?php $query = array(); $query[mountain] = http:// . $_SERVER[SERVER_NAME] . url_for(app/place?place_id= . $Place->id); $query[place] = $Place->fb_id; $query[route] = array( array( "latitude"=> 47.074236, "longitude"=> 12.694061, "altitude"=> 3798 ), array( "latitude"=> 47.174236, "longitude"=> 12.794061, "altitude"=> 3698 ), array( "latitude"=> 47.274236, "longitude"=> 12.794061, "altitude"=> 3598 ), ); ACHTUNG : Dies ist ein Format-Beispiel, ?> keine offizielles FB Datenformat! FranciMedia, AllFacebook Developer 30 Converence, 5. Dezember 2011
  31. 31. Aggregation – Darstellung in der Timline FranciMedia, AllFacebook Developer 31 Converence, 5. Dezember 2011
  32. 32. Aggregation / Zusammenfassung http://developers.facebook.com/tools/ex plorer/155476011209694/?method =GET&path=me/summiteer:climb FranciMedia, AllFacebook Developer 32 Converence, 5. Dezember 2011
  33. 33. FranciMedia, AllFacebook Developer 33 Converence, 5. Dezember 2011
  34. 34. FranciMedia, AllFacebook Developer 34 Converence, 5. Dezember 2011
  35. 35. Aktueller Stand > Beta• Datenstrukturen – funktionsfähig• Konfiguration der Aktionen und Objekte – unter Vorbehalt funktionsfähig• Konfiguration und Darstellung der Aggregations – Buggy / Beta FranciMedia, AllFacebook Developer 35 Converence, 5. Dezember 2011
  36. 36. Ausblick > Großes Potential• OG Maps + Mobile Apps – Essentiell für Nutzermotivation• Shopping – Bsp.: Produkte die Freunde in der näheren Umgebung gekauft haben • Wann? / Wo? • Shop-Informationen • Produktinformation• Großer Aufwand – Nicht geeigenet für kurzfristige Promotion- Aktionen – Geringe Erfahrungswerte mit „Approval Process“ FranciMedia, AllFacebook Developer 36 Converence, 5. Dezember 2011

×