|
Auf einen Blick |
6 |
|
|
Inhalt |
8 |
|
|
Vorwort |
16 |
|
|
1 Einstieg in die Anwendungsentwicklung auf der Facebook- Plattform |
20 |
|
|
1.1 Überblick über die Facebook-Plattform |
20 |
|
|
1.2 Der Development Stack |
29 |
|
|
1.3 Hosting |
30 |
|
|
1.3.1 Leistungsfähigkeit und Skalierung |
31 |
|
|
1.3.2 SSL-Unterstützung |
32 |
|
|
1.4 Setup der ersten eigenen Applikation |
37 |
|
|
1.4.1 Einstellungen »Basic« |
40 |
|
|
1.4.2 Einstellungen zum »Auth Dialog« |
44 |
|
|
1.4.3 Einstellungen »Advanced« |
45 |
|
|
1.4.4 Benutzerrollen |
49 |
|
|
1.4.5 Open Graph |
51 |
|
|
1.4.6 Credits |
52 |
|
|
1.4.7 Insights |
52 |
|
|
1.5 Hello Facebook! |
52 |
|
|
1.5.1 Hello Facebook! als Tab-Anwendung |
55 |
|
|
1.6 Ressourcen und Tools für Entwickler |
57 |
|
|
1.6.1 Offizielle Dokumentation |
57 |
|
|
1.6.2 Developer-Blog und Live-Status |
57 |
|
|
1.6.3 Developer-Forum |
59 |
|
|
1.6.4 Developer-Tools |
59 |
|
|
1.6.5 Bug Tracker |
59 |
|
|
1.7 Terms of Service und Plattform-Guidelines |
60 |
|
|
2 Authentifikation und Autorisierung |
64 |
|
|
2.1 OAuth 2.0 |
65 |
|
|
2.2 Serverseitige Authentifikation |
66 |
|
|
2.2.1 Weiterleitung zum Facebook-OAuth-Dialog |
66 |
|
|
2.2.2 Der Callback am Anwendungsserver |
69 |
|
|
2.2.3 Bezug des Access Tokens |
71 |
|
|
2.2.4 Erweiterung der Authentifikation um Session-Management |
76 |
|
|
2.3 Clientseitige Authentifikation |
81 |
|
|
2.4 Signed Request |
83 |
|
|
2.4.1 Implementierung eines Fan-Gates |
88 |
|
|
2.5 Deautorisierung von Anwendungen |
89 |
|
|
2.6 Erweiterte Zugriffsrechte (»Extended Permissions«) |
90 |
|
|
2.6.1 Basisberechtigungen |
90 |
|
|
2.6.2 Berechtigungen für Profildaten von Benutzern und Freunden |
90 |
|
|
2.6.3 Erweiterte Berechtigungen |
92 |
|
|
2.7 Access Tokens für Anwendungen und Seiten |
95 |
|
|
2.7.1 Access Tokens für Anwendungen |
95 |
|
|
2.7.2 Access Tokens für Seiten |
96 |
|
|
3 Die Graph API |
100 |
|
|
3.1 Grundlagen der Graph API |
101 |
|
|
3.1.1 Zugriff mit eindeutigen Identifikationsnamen |
104 |
|
|
3.1.2 Authentifizierter Zugriff auf die Graph API |
106 |
|
|
3.1.3 Objektverknüpfungen im sozialen Graphen |
106 |
|
|
3.1.4 Selektion in der Graph API |
108 |
|
|
3.1.5 Selektion von Datumsfeldern |
109 |
|
|
3.1.6 Zugriff auf Profilbilder |
110 |
|
|
3.1.7 Paging in der Graph API |
111 |
|
|
3.1.8 Veröffentlichen und Löschen von Objekten mit der Graph API |
112 |
|
|
3.1.9 Der Graph API Explorer |
114 |
|
|
3.2 Objekttypen und Verknüpfungen der Graph API |
117 |
|
|
3.2.1 Das User-Objekt |
117 |
|
|
3.2.2 Das Seitenobjekt |
149 |
|
|
3.2.3 Das Gruppenobjekt |
164 |
|
|
3.2.4 Das Albumobjekt |
169 |
|
|
3.2.5 Das Anwendungsobjekt |
173 |
|
|
3.2.6 Das Domain-Objekt |
177 |
|
|
3.2.7 Das Fotoobjekt |
178 |
|
|
3.2.8 Das Videoobjekt |
183 |
|
|
3.2.9 Das Veranstaltungsobjekt |
186 |
|
|
3.2.10 Das Post-Objekt |
190 |
|
|
3.2.11 Das Linkobjekt |
195 |
|
|
3.2.12 Das Fragenobjekt |
198 |
|
|
3.2.13 Das Fragen-Optionsobjekt |
200 |
|
|
3.2.14 Das Checkin-Objekt |
201 |
|
|
3.2.15 Das Kommentarobjekt |
204 |
|
|
3.2.16 Das Notizenobjekt |
206 |
|
|
3.2.17 Das Review-Objekt |
209 |
|
|
3.2.18 Das Abonnementobjekt |
209 |
|
|
3.2.19 Das Konversationenobjekt |
210 |
|
|
3.2.20 Das Nachrichtenobjekt |
212 |
|
|
3.3 Performance und Caching der Graph API |
213 |
|
|
3.4 Batch-Zugriff auf die Graph API |
217 |
|
|
3.4.1 Einfache Batch-Zugriffe |
217 |
|
|
3.4.2 Verwendung von unterschiedlichen Access Tokens |
219 |
|
|
3.4.3 Kombination von Schreib- und Lesezugriffen |
219 |
|
|
3.4.4 Abhängigkeiten zwischen API-Zugriffen und Verschachtelung |
222 |
|
|
3.5 Echtzeit-Zugriff auf die Graph API |
223 |
|
|
3.5.1 Verwaltung von Echtzeit-Abonnements |
224 |
|
|
3.5.2 Entgegennehmen von Echzeit-Updates |
227 |
|
|
4 Das JavaScript SDK |
232 |
|
|
4.1 Laden des JavaScript SDKs |
232 |
|
|
4.1.1 Hello World mit dem Facebook JavaScript SDK |
234 |
|
|
4.1.2 Die Channel-Datei |
237 |
|
|
4.1.3 Lokalisierung des SDKs |
238 |
|
|
4.2 Kernmethoden des SDKs |
239 |
|
|
4.2.1 FB.init |
239 |
|
|
4.2.2 FB.api |
239 |
|
|
4.2.3 FB.login |
243 |
|
|
4.2.4 FB.logout |
244 |
|
|
4.2.5 FB.getLoginStatus |
245 |
|
|
4.2.6 FB.getAuthResponse |
246 |
|
|
4.2.7 FB.XFBML.parse |
247 |
|
|
4.3 Canvas-Methoden des SDKs |
248 |
|
|
4.3.1 FB.Canvas.getPageInfo |
248 |
|
|
4.3.2 FB.Canvas.scrollTo |
249 |
|
|
4.3.3 FB.Canvas.setSize |
249 |
|
|
4.3.4 FB.Canvas.setAutoGrow |
250 |
|
|
4.3.5 FB.Canvas.setUrlHandler |
252 |
|
|
4.3.6 FB.Canvas.setDoneLoading |
253 |
|
|
4.3.7 FB.Canvas.stopTimer |
254 |
|
|
4.3.8 FB.Canvas.startTimer |
255 |
|
|
4.3.9 FB.Canvas.Prefetcher.addStaticResource |
255 |
|
|
4.3.10 FB.Canvas.Prefetcher.setCollectionMode |
256 |
|
|
4.4 Dialoge mit FB.ui |
256 |
|
|
4.4.1 Feed-Dialog - Veröffentlichen von Pinnwand-Einträgen |
259 |
|
|
4.4.2 Friends-Dialog - Versenden von Freundschaftsanfragen |
265 |
|
|
4.4.3 OAuth-Dialog |
267 |
|
|
4.4.4 Payment-Dialog |
268 |
|
|
4.4.5 Requests-Dialog |
273 |
|
|
4.4.6 »Send«-Dialog |
283 |
|
|
4.4.7 Tab-Dialog |
286 |
|
|
4.5 Laden von Social Plugins |
287 |
|
|
4.6 Event-Handling |
289 |
|
|
4.6.1 FB.Event.subscribe |
289 |
|
|
4.6.2 FB.Event.unsubscribe |
291 |
|
|
4.6.3 Verfügbare Events |
291 |
|
|
5 Die Facebook Query Language (FQL) |
296 |
|
|
5.1 FQL-Zugriffe über die Graph API |
297 |
|
|
5.2 FQL-Tabellen |
300 |
|
|
5.2.1 Albumtabelle |
300 |
|
|
5.2.2 Application-Tabelle |
302 |
|
|
5.2.3 Apprequest-Tabelle |
303 |
|
|
5.2.4 Checkin-Tabelle |
305 |
|
|
5.2.5 Comment-Tabellen |
306 |
|
|
5.2.6 Connection-Tabelle |
308 |
|
|
5.2.7 Cookies-Tabelle |
309 |
|
|
5.2.8 Developer-Tabelle |
310 |
|
|
5.2.9 Domain-Tabellen |
310 |
|
|
5.2.10 Event-Tabellen |
312 |
|
|
5.2.11 Family-Tabelle |
314 |
|
|
5.2.12 Friend-Tabelle |
315 |
|
|
5.2.13 Friend-Request-Tabelle |
316 |
|
|
5.2.14 Friendlist-Tabellen |
317 |
|
|
5.2.15 Group-Tabellen |
318 |
|
|
5.2.16 Insights-Tabelle |
321 |
|
|
5.2.17 »Like«-Tabelle |
322 |
|
|
5.2.18 Linktabelle |
323 |
|
|
5.2.19 Link-Stat-Tabelle |
324 |
|
|
5.2.20 Mailbox-Folder-Tabelle |
326 |
|
|
5.2.21 Message-Tabelle |
327 |
|
|
5.2.22 Note-Tabelle |
327 |
|
|
5.2.23 Notification-Tabelle |
328 |
|
|
5.2.24 Object-URL-Tabelle |
330 |
|
|
5.2.25 Page-Tabellen |
331 |
|
|
5.2.26 Permission-Tabelle |
336 |
|
|
5.2.27 Fototabellen |
337 |
|
|
5.2.28 Place-Tabelle |
340 |
|
|
5.2.29 Privacy-Tabellen |
341 |
|
|
5.2.30 Profile-Tabelle |
343 |
|
|
5.2.31 Question-Tabellen |
344 |
|
|
5.2.32 Review-Tabelle |
346 |
|
|
5.2.33 Standard-Friend-Info-Tabelle |
347 |
|
|
5.2.34 Standard-User-Info-Tabelle |
347 |
|
|
5.2.35 Status-Tabelle |
348 |
|
|
5.2.36 Stream-Tabellen |
349 |
|
|
5.2.37 Thread-Tabelle |
354 |
|
|
5.2.38 Translation-Tabelle |
355 |
|
|
5.2.39 Unified-Message-Tabellen |
356 |
|
|
5.2.40 URL-Like-Tabelle |
361 |
|
|
5.2.41 User-Tabelle |
362 |
|
|
5.2.42 Videotabellen |
366 |
|
|
6 Social Plugins |
370 |
|
|
6.1 Laden von Social Plugins |
370 |
|
|
6.2 Der »Like«-Button |
372 |
|
|
6.3 Der »Send«-Button |
380 |
|
|
6.4 Der »Subscribe«-Button |
383 |
|
|
6.5 Die »Like«-Box |
384 |
|
|
6.6 Der Activity Feed |
388 |
|
|
6.7 Die Recommendations-Box |
391 |
|
|
6.8 Der Live Stream |
394 |
|
|
6.9 Die Kommentarbox |
396 |
|
|
6.10 Der »Log-In«-Button |
404 |
|
|
6.11 Die Facepile-Box |
405 |
|
|
6.12 Die Registrierungsbox |
407 |
|
|
7 Mobile Webanwendungen auf Facebook |
418 |
|
|
7.1 Einrichten der Mobile Web URL |
420 |
|
|
7.2 Mobile Nutzung von Facebook-Dialogen |
423 |
|
|
7.3 Social Plugins im mobilen Web |
426 |
|
|
8 Open Graph |
428 |
|
|
8.1 Open Graph Protocol |
428 |
|
|
8.1.1 Zusammenspiel zwischen Open Graph Tags, »Like«-Button und Facebook |
430 |
|
|
8.1.2 Die Tags des Open Graph Protocols |
432 |
|
|
8.1.3 Einbindung von Video-, Flash- und Audiodaten |
435 |
|
|
8.1.4 Testen von Open Graph Tags mit dem URL Debugger |
438 |
|
|
8.1.5 Administrieren und Veröffentlichen auf Open-Graph-Seiten |
439 |
|
|
8.2 Open Graph |
443 |
|
|
8.2.1 Ticker und Timeline-Profil |
444 |
|
|
8.2.2 Das Timeline-Profil im Überblick |
445 |
|
|
8.2.3 Definieren von Objekten |
450 |
|
|
8.2.4 Definieren von Aktionen |
460 |
|
|
8.2.5 Definieren von Aggregationen |
468 |
|
|
8.2.6 Veröffentlichen von Aktionen |
479 |
|
|
8.2.7 Der neue OAuth-Dialog |
488 |
|
|
8.2.8 Vordefinierte Objekt- und Aktionstypen |
491 |
|
|
8.2.9 Social Plugins für Open Graph |
500 |
|
|
9 Facebook Credits |
510 |
|
|
9.1 Einrichten von Facebook Credits |
511 |
|
|
9.2 Der Payment-Dialog |
513 |
|
|
9.3 Die Credits-Callback-URL |
514 |
|
|
9.3.1 Aufruf der Callback-URL zum Abrufen der Produktdetails |
514 |
|
|
9.3.2 Aufruf der Callback-URL zum Bestätigen der Transaktion |
517 |
|
|
9.3.3 Beispiel-Code zur Bedienung der Callback-URL |
520 |
|
|
9.3.4 Zugriff auf Transaktionen mit der Graph API |
522 |
|
|
9.4 Facebook Credits und Offers |
523 |
|
|
Anhang A Cloud-Hosting von Facebook- Anwendungen mit Heroku |
526 |
|
|
A.1 Anlegen der Heroku-Testapplikation |
527 |
|
|
A.2 Bearbeiten des Anwendungscodes mit Git |
529 |
|
|
A.3 Aufrufen der Heroku-Testapplikation |
533 |
|
|
Anhang B Internationalisierung von Facebook-Anwendungen |
534 |
|
|
B.1 Unterstützung von Locales und JavaScript SDK |
534 |
|
|
B.2 Internationalisierung von Anwendungstexten |
535 |
|
|
Anhang C Das offizielle Facebook PHP SDK |
540 |
|
|
C.1 Download und Installation des SDKs |
540 |
|
|
C.2 Autorisierung der Anwendung |
541 |
|
|
C.3 Zugriff auf die Graph API |
543 |
|