API - Einführung Teil 4

781 views

Published on

Kursunterlagen für SAE Institut Zürich

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
781
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

API - Einführung Teil 4

  1. 1. APIApplication Programming Interface 3. Tag
  2. 2. API – Blick zurück● Letzte Woche: ● Focus auf Google APIs (Maps, reCAPTCHA) ● Javascript und PHP ● Einfache Aufrufe und Einbindung ● Kombination (JSON-Daten und Map)
  3. 3. APIApplication Programming Interface Heute: Flickr API
  4. 4. API – Überblick FlickrAPI● Flickr: (Link) Eine der grössten Foto- Verwaltungs-Websites (gehört Yahoo)● Google hat mit Picasa etwa dasselbe im Angebot● Mit dem API können Fotos u.a. aufgeladen, geändert, getaggt, gesucht und gelöscht werden● Galerien, Slideshows und Vieles mehr
  5. 5. API – Was noch?● Komplexere API-Operationen verlangen Authentifizierung● Mehr als nur API-Schlüssel● API will wissen, mit wem es es zu tun hat● Schreib- und Löschvorgänge sollen nur von authorisierten Usern gemacht werden● Authentifizierung ist nicht ganz einfach● Mehrfaches Hin- und Her notwendig
  6. 6. API - Authorisierung● Identifiziert einen Benutzer der Plattform, für die eine API existiert (z.B. Flickr, Facebook, etc.) ohne das Passwort zu verraten● D.h. User gibt sein Passwort ein, wir Entwickler sehen es aber nicht● User authorisiert unsere App zusätzlich, auf seine Daten zuzugreifen● Unsere App sieht nur, ob sie authorisiert ist oder nicht● API macht einen „Callback“ nach dem User-Login, d.h. es „ruft uns zurück“● Wir müssen diesen Callback auf einem öffentlich erreichbare Server platzieren
  7. 7. API - Authorisierung ● Schritte der Authorisierung (Bei Flickr) API-CallApp Authorisieren „Authorisierung“ Parameter: - API-Key - Gewünschte Rechte - Signatur http://www.flickr.com/services/auth/ api_key: 13ebd64d6952973c29f58f64d978a9be perms: read api_sig: MD5-Hash aller Parameter in alphabetischer Reihenfolge
  8. 8. API - MD5-Hash-Funktion● Was ist ein MD5-Hash? (Wikipedia)● Einweg-Funktion, die einen String mit einem Schlüssel kombiniert (-> verschlüsselt)● Einweg? -> Das Resultat kann nicht zurück- berechnet werden● PHP: echo md5(irgend ein text); Ergibt: b10669f4abf89c6cf4e23eb3ce9f4d1b
  9. 9. API - Authorisierung● Signatur berechnen für Flickr: ● Alle URL-Parameter ohne & und = ● In alfabetischer Reihenfolge ● aneinandergereiht ● ..und den Secret-Key vorangestellt 116764f12bcdcb4dapi_key13ebd64d6952973c29f58f64d978a9bepermsread● Ergibt: 2519e3b21d31792b827d5450cc879a80
  10. 10. API - Authorisierung ● Schritte der Authorisierung (Bei Flickr) API-CallApp Authorisieren „Authorisierung“ Parameter: - API-Key - Gewünschte Rechte - Signatur Komplette URL: http://www.flickr.com/services/auth/?api_key=13ebd64d6952973c29f58f64d978a9be& perms=read&api_sig=2519e3b21d31792b827d5450cc879a80
  11. 11. API - Authorisierung ● Schritte der Authorisierung (Bei Flickr)App Authorisieren API-Call „Authorisierung“ Flickr API Parameter: - API-Key - Gewünschte Rechte - Signatur
  12. 12. API - Authorisierung● Schritte der Authorisierung (Bei Flickr) Flickr API
  13. 13. API - Authorisierung● Schritte der Authorisierung (Bei Flickr) Flickr API http://unsereApp/?frob=xxxxxx Callback flickr.auth.get_token „frob“ auslesen Parameter: - API-Key - Frob - Signatur
  14. 14. API - Authorisierung● Schritte der Authorisierung (Bei Flickr) Flickr API flickr.auth.get_token Token: Parameter: 72157626513456655-49d0fb7a6b5072e9 - API-Key - Frob Mit diesem Token (Jeton) müssen alle künftigen - Signatur API-Calls gemacht werden Gültigkeit: 1 Stunde
  15. 15. API - Authorisierung● Fazit: ● Komplexes Hin und Her ● Zum Glück gibt es eine PHP-Bibliothek, die all diese Vorgänge „kapselt“ ● PHP-Bibliothek: phpFlickr (Link dazu) ● Wir brauchen einen öffentlich erreichbaren Server (also nicht localhost)
  16. 16. APIApplication Programming Interface Genug Theorie...
  17. 17. APIApplication Programming Interface LAB

×