2013-04-29 6 views
5

Ich arbeite an einer App, die eine Autorisierung über OAuth2 von einem Drittanbieter-Webdienst erhalten muss (Drittanbieter bedeutet, dass es nicht Google ist und ich es nicht besitze).Verwenden von Android AccountManager für OAuth2-Autorisierung von Drittanbietern

Dieser Artikel:

http://developer.android.com/training/id-auth/authenticate.html

scheint darauf hinzudeuten, dass ich für diesen Zweck verwenden Accountmanager sein sollte. Nachdem ich darüber nachgedacht habe, habe ich einige Zweifel, ob dies möglich ist oder ob es für mich angemessen ist. Wenn ich ein Google-Konto oder ein anderes Konto verwenden möchte, das bereits von einer anderen App in AccountManager installiert wurde, ist es natürlich eine gute Idee, die Zugangsdaten von AccountManager abzurufen. Aber da ich ein Konto verwenden werde, das höchstwahrscheinlich nicht in AccountManager enthalten ist, müsste ich alle Arbeiten erledigen, um es zu installieren.

Bietet AccountManager Unterstützung bei der Verarbeitung von OAuth2-Anfragen? Wenn nicht, was nützt es dann?

Und da ich nicht den Web-Service gehört, der mit diesem Kontotyp verbunden ist, ist es sogar angemessen für mich, solche Konten in AccountManager zu installieren?

Vielen Dank!

Antwort

0

Dies könnte eine ziemlich späte Antwort nach all diesen 4 Jahren sein, aber lassen Sie mich Ihnen eine kurze Antwort geben.

Sie können und sollten nicht selbst Drittanbieterkonten für Oauth installieren. Es ist die Aufgabe von Drittanbieter-OAuth-Anbietern wie Facebook oder Twitter, die AccountManager-Funktionalität zu implementieren und ihren eigenen Kontotyp zu erstellen. Dies wird grob unter https://developer.android.com/training/id-auth/custom_auth.html geführt.

Es gibt mehrere Dienste, einschließlich OAuth-Provider wie Facebook, Twitter, WeChat und etc, die Benutzerkonten in AccountManager registrieren, aber ich glaube, die meisten von ihnen verwenden es nur zum Implementieren von SyncAdapter (die Account benötigt), nicht zu bieten OAuth-Funktionalität für Anwendungen von Drittanbietern wie Ihre App.

Ich denke, Google ermöglicht es Ihnen, ihre APIs mit dem Token von AccountManager erworben zu verwenden; Der von Ihnen angegebene Link enthält ein Beispiel für die Verwendung von AccountManager für die Aufgaben-API. Die Verwendung der Client-Bibliothek ist jedoch eine bessere Möglichkeit, dasselbe zu erreichen, wie in https://developers.google.com/google-apps/tasks/quickstart/java#step_3_configure_the_project_build beschrieben.

Wenn der OAuth-Drittanbieter Ihnen keine SDKs oder Clientbibliotheken zur Verfügung stellt, haben Sie keine andere Wahl als die von ihnen bereitgestellten REST-APIs zu verwenden.

Verwandte Themen