﻿Wolke 7
Programmieren für die Google App Engine
------------------------------------------------------------------------
c't 02/10, Seite 174 (ola)

demoblo9\	Die im Artikel besprochene App-Engine-Anwendung



INSTALLATION
============

Entpacken Sie das ZIP-Archiv in einem beliebigem Verzeichnis.


KONFIGURATION DES URL-SHORTENER

Um den URL-Kürzungsdienst nutzen zu können, müssen Sie in der Datei UrlShortener.py in den Zeilen 15 und 16 den Login und den bei der Registrierung unter http://bit.ly/account/your_api_key erhaltenen API-Key eintragen. Das sieht dann in etwa wie folgt aus:

 12   URL_SHORTENER_SETTINGS = {
 13       'bit.ly': {
 14           'url'   : 'http://api.bit.ly/shorten',
 15           'login' : 'BENUTZERNAME',
 16           'apiKey': 'R_2af149cec4ad1e7a1693c710e3785bee'
 17       },
 18   }

In der Voreinstellung wird der Kürzungsdienst bit.ly genutzt. Das Modul UrlShortener.py ist allerdings schon für weitere Dienste (is.gd und tinyurl.com) vorbereitet. Möchte man sie nutzen, muss man den gewünschten beim Aufruf der Funktion shortenUrl() im Argument "service" angeben (Zeile 562 in Page.py), zum Beispiel so:

shortenUrl(url, service='is.gd')


INITIALISIERUNG DER BENUTZERBERECHTIGUNGEN

Die Klasse Permissions.Permission beschreibt das Datenmodell der Berechtigungen, die man an Nutzer des Blogs vergeben kann. Der Aufruf von 
http://localhost:8080/init/permissions füllt die Tabelle mit den Berechtigungen. Die Berechtigungen liest der Handler (Page.Init) aus der Datei raw/permissions.csv. Sie enthält die Berechtigungen zeilenweise nach folgendem Schema:

-----------------------------------------------------------------------
Spalte   Inhalt
-----------------------------------------------------------------------
1        E-Mail-Adresse des Nutzers
2        Benutzer ist Administrator
3        Benutzer darf Beiträge erstellen
4        Benutzer darf Beiträge an Twitter, Myspace & Co. senden
5        Benutzer darf Beiträge ins Blog importieren
6        Benutzer darf Beiträge aus dem Blog exportieren
7        Benutzer darf Binärobjekte hochladen
8        Benutzer darf Beiträge kommentieren (noch nicht implementiert)
-----------------------------------------------------------------------

Der Wert True steht dafür, dass der Benutzer das beschriebene Recht hat, der Wert False dafür, dass er es nicht hat. Im Urzustand enthält raw/permissions.csv nur die Berechtigungen für den fiktiven Benutzer test@example.com:

test@example.com, True, True, True, True, True, True



REGISTRIEREN DER ANWENDUNG BEI TWITTER

Damit das automatische Cross-Posting eines neues Blog-Eintrags an Twitter funktioniert, muss man seine Anwendung als OAuth-Consumer bei Twitter unter http://twitter.com/apps registrieren. Als "Application type" ist "Client" zu wählen, der "Default Access type" muss auf "Read & write" stehen. Außerdem muss die Checkbox "Yes, use Twitter for login" markiert sein. 

Den erhaltenen "Consumer key" und das "Consumer secret" trägt man alsdann in der Datei oauth.py in den Zeilen 28 und 35 ein. Das sieht beispielsweise wie folgt aus:

 27  consumer_key =    {
 28                     'twitter': 'fjs9HRdZaif4BdSrf8',
 29                     'myspace': '',
 30                     'google' : '',
 31                     'yahoo'  : '',
 32                    }
 33
 34  consumer_secret = {
 35                     'twitter': 'j1tA8MfbcFOfiUzRBFWf2H2lAiPmdD4wZcKhYXzw',
 36                     'myspace': '',
 37                     'google' : '',
 38                     'yahoo'  : '',
 39                    }

Die Einträge für Myspace, Google und Yahoo können Sie getrost ignorieren - sie sind reserviert für spätere Erweiterungen. Momentan funktioniert nur der OAuth-Login bei Twitter.




-- 
Copyright (C) 2009 Oliver Lau <ola@ct.de>
Copyright (C) 2009 Heise Zeitschriften Verlag
Alle Rechte vorbehalten.