Kategoriearchive: Fourscore

Windows Phone 7 & OAuth 2.0 – Fourscore for Windows Phone ärgert sich über Foursquare API

Die Programmierung meiner ersten eigenen Windows Phone 7 App mit dem Namen Fourscore zwingt mich dazu, eine fremde API zu verwenden, welche auf OAuth 2.0 setzt. Bei OAuth ist es das erklärte Ziel, dass ein Benutzer, der einer App Zugriff auf seinen Account bei einem anderen Dienst wie bspw. Foursquare oder Twitter gewähren möchte, nicht mehr direkt in die App seine Logindaten eingeben muss. Statt dessen ist es erwünscht, dass die Apps oder Dienste, die sich an der API autorisieren wollen, an hand von ihnen zugewiesenen IDs und Schlüsseln auf den eigentlichen Dienst leiten. Dort gibt der Benutzer dann seine Logindaten ein, gestattet explizit der App den Zugriff und anschließend wird ein sogenannter Access Token erstellt, den die App erhält und abspeichern muss. Anhand dieses Tokens kann die App dann als vom Nutzer autorisiert bestimmte Dinge mit dessen Account anstellen oder eben nicht.

Wer das jetzt aufmerksam gelesen hat, wird festgestellt haben, dass dies einen gewissen Teil ganz normales Browsen darstellt. Sprich: Öffnen einer Website, lass den User da mal machen und irgendwann kriegen wir über eine Callback-URL den Token. Ja, alles schön und gut, aber was ist, wenn die App kein webbasierter Dienst ist wie bsp. Formspring oder BotPwn? Dann bedeutet der Browserzwang nämlich nur umständliches rumgesurfe und am Ende weiß die App immer noch nicht so recht, wie sie an den Access-Token kommen soll.

Foursquare erfordert zur Authentifizierung OAuth 2.0 und davon ist meine App Fourscore for Windows Phone direkt betroffen. Es gibt für Windows Phone 7 im Prinzip zwei Möglichkeiten, das Ansurfen einer URL zu erreichen. Man könnte einen sogenannten Phone-Task ausführen lassen, in diesem Fall einen WebBrowserTask. Dieser veranlasst Windows Phone 7 eine Instanz des Browsers zu öffnen und die gewünschte URL anzusurfen. Das bedeutet für die App in diesem Moment die Deaktivierung, sie wird eingeschläfert. Dass der Nutzer sich am gewünschten Dienst anmeldet und den Access Token zwischenzeitlich bekommen haben könnte, davon erfährt die App nichts. Man kann den User nicht einmal dazu auffordern, den Token zu kopieren und dann in ein Eingabefeld der App einzufügen, weil Windows Phone 7 derzeit nocht nicht über Copy&Paste verfügt. Schöne Scheiße.
Die andere Variante ist eine eigene Webbrowser-Instanz in der App zu verwenden, sozusagen als Steuerelement wie einen Button oder eine Textbox. Vorteil hier wäre, dass man sogar überwachen könnte, ob darin die Seite mit dem schließlich erzeugten Access Token zu sehen ist, könnte ihn automatisch auslesen und fertig. Nur leider… und das nervt wirklich… kann man sich mit diesem Control nicht bei Foursquare einloggen. Man bleibt einfach auf der Loginseite hängen. Gehts frustrierender?

Was bedeutet das im Endeffekt? Nun, Fourscore wird versuchen müssen, selbst eine Art Browser zu werden. Die ganzen Requests mit der OAuth-API von Foursquare müssen wir wohl selbst nachbauen. Leider funktioniert die HttpWebRequest-Klasse in Silverlight anders als im “normalen” .NET Framework. Ob sie im Endeffekt überhaupt all das kann, was für diesen Autorisierungsprozess notwendig ist, weiß ich noch gar nicht, werde ich aber heraus finden müssen. Nutzer werden als am Ende doch wieder ihren Benutzernamen und ihr Passwort in die App eingeben. OAuth ad absurdum geführt. Da könnte man sich das mit dem Access Token auch gleich sparen.

Noch dazu ist die Foursquare App einfach ständig mal nicht erreichbar und antwortet mit total schrägen 404 Fehlermeldungen. Ich glaubte, die offizielle Foursquare-App für Windows Phone sei einfach nur kaputt. Dabei ist es die ganze API. Na mal sehen, was das noch wird…

GD Star Rating
loading...

Ähnliche Einträge:

Meine erste Windows Phone 7 App – Entwicklung gestartet

Wenn man etwas im Bereich der Softwareentwicklung ausprobieren möchte, steht man oftmals vor dem Problem, dass man nicht weiß, womit man es ausprobieren soll. Ein halbwegs sinnvolles Projekt sollte es halt schon sein. Und nun bin ich zwar schon seit drei Wochen registriert im Microsoft AppHub als Entwickler, kam jedoch noch nicht dazu, davon auch Gebrauch zu machen.

Eine besonders nervige App für Windows Phone 7 ist jetzt der Anlass, meine ersten Gehversuche im Bereich der Windows Phone 7 Entwicklung zu starten. Für den Dienst Foursquare (www.foursquare.com, ein Lokalisationsdienst) gibt es eine App, kostenlos, aber auch entsprechend fehleranfällig. Mir passiert es am laufenden Band, dass die App sich aufhängt oder mit diversen Fehlern nicht in der Lage ist – nachdem man sich durch die Struktur der App bewegt hat – einen Checkin zu machen. Weitere kostenlose Foursquare-Apps für Windows Phone 7 sind mir nicht bekannt, lediglich eine mit fast 5 EUR recht teure App beherrscht Foursquare und das deutlich stabiler, jedoch auch mit einem sehr lahmen User Interface.

So beginne ich nun also eine eigene App zu bauen, die sich Foursquare widmen wird. Der Name dieser App lautet: Fourscore. Ich habe auch schon ein Logo entwickelt und die ersten Grundlagen geschaffen. Es folgen das Logo sowie ein paar Screenshots des App-Grundgerüsts im Windows Phone 7 Emulator. Über die Entwicklung der App werde ich ab und zu berichten.

 

GD Star Rating
loading...

Ähnliche Einträge: