Ich richte OAuth für meine Android-App ein. Um es zu testen, habe ich Folgendes getan: Ich habe signpost-core-1.2.1.1.jar und signpost-commonshttp4-1.2.1.1.jar zu meinem Projekt hinzugefügt, die Variablen "CommonsHttpOAuthConsumer consumer" und "CommonsHttpOAuthProvider provider" hinzugefügt und beim Klicken auf die Schaltfläche Folgendes getan:
%Vor%persistOAuthData () macht folgendes:
%Vor%So werden der Verbraucher und der Anbieter vor dem Öffnen des Browsers gespeichert, wie in hier .
In der Methode onResume () lade ich die Provider- und Consumer-Daten und mache folgendes:
%Vor%Also, was funktioniert: 1) Ich bekomme einen RequestToken und einen requestSecret. 2) Ich bekomme die OAUTHURL. 3) Ich werde auf die Browser-Seite geleitet, um meine App zu autorisieren 4) Ich werde zu meiner App weitergeleitet. 5) Ich bekomme den Verifizierer. Aber der Aufruf von retrieveAccessToken (consumer, verifier) schlägt mit einer OAuthCommunicationException fehl, die besagt "Kommunikation mit dem Service Provider ist fehlgeschlagen: null".
Weiß jemand, was der Grund sein könnte? Einige Leute haben Probleme, den requestToken zu bekommen, aber das funktioniert einfach. Ich frage mich, ob es ein Problem sein könnte, dass meine App auch die Apache-Mime4j-0.6.jar und httpmime-4.0.1.jar enthalten, die ich für Multipart-Upload benötige.
Okay, ich habe es herausgefunden. Vielleicht ist das für andere hilfreich:
Zunächst müssen Sie nicht das gesamte Consumer- und Provider-Objekt speichern. Alles, was Sie tun müssen, ist das requestToken und das requestSecret zu speichern. Zum Glück sind das Strings, also müssen Sie sie nicht auf die Festplatte schreiben oder so. Speichern Sie sie einfach in den sharedPreferences oder ähnlichem.
Wenn Sie nun vom Browser weitergeleitet werden und Ihre onResume () -Methode aufgerufen wird, tun Sie Folgendes:
%Vor%Das ist es, Sie können jetzt das Token und das Geheimnis mit getToken () und getTokenSecret () empfangen.