Ich versuche, die YouTubeData API mit OAuth 2.0-Authentifizierung auf Android zu verwenden, und ich bin ein bisschen mit ihm zu kämpfen.Youtube Data API mit OAuth2.0 auf Android
ich gesucht habe viel online, aber es gibt nicht viel Hilfe für die Android-Implementierung.
Zunächst einmal ist es mir nicht klar, was der beste Weg, um ein OAuth-Token zu erhalten. Im Dokument schlagen sie vor, dass es für Android besser ist, sie über die Google Play-Dienstelib zu erhalten. Ist das wahr? Wenn ja, sollte es nach dieser Anleitung ziemlich trivial sein: https://developers.google.com/android/guides/http-auth. Aber an diesem Punkt werde ich das Token in einem String
Objekt haben .. Wie sollte ich es mit der YouTubeData API verwenden? Soll ich es irgendwo in der YouTube.Builder
platzieren?
YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
public void initialize(HttpRequest request) throws IOException {
}
}).setApplicationName("AppName").build();
Wenn ja, weiß jemand wo?
auf Stackoverflow Suche Ich habe über diese Frage kommen: What to do after getting Auth Token - Android Youtube API. Hier sagt Ibrahim Ulukaya, dass es besser ist, GoogleAccountCredential
zu verwenden. Für das, was ich verstanden habe (Access to Google API - GoogleAccountCredential.usingOAuth2 vs GoogleAuthUtil.getToken()) sollte die Android-Version von GoogleAccountCredential
die GoogleAuthUtil
von der Google Play-Dienste lib verwendet, so könnte es sehr nützlich sein, den Prozess zu vereinfachen. Ich habe mir das Beispielprojekt von Ibrahim Ulukaya angesehen (https://github.com/youtube/yt-direct-lite-android) und ich habe alles so implementiert wie er. Aber es scheint nicht sehr gut zu funktionieren, da ich diese Nachricht nur im Logcat erhalte: "Es gab einen IO-Fehler: com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission: null".
(Ich habe alle erforderlichen APIs in Google Console aktiviert und die Client-ID für meine App erstellt)
An diesem Punkt bin ich irgendwie verloren.
Soll ich direkt die GoogleAuthUtil
aus der Google Play-Dienste lib verwenden? in diesem Fall einmal das Token als String
erhalten, wie kann ich es mit den YouTubeData APIs verwenden?
Oder sollte ich die GoogleAccountCredential
verwenden? in diesem Fall weiß jemand, wie ich den Fehler "NeedPersmission: null" lösen kann?
---- EDIT:
Details auf, was mein App zu tun versucht: mit dieser Art von APIs dies meine ersten Erfahrung sein ich von den einfachen Sachen gestartet: Videoinformationen abrufen und dann Spielen Sie diese Videos ohne Benutzerauthentifizierung ab. Ich habe das ziemlich einfach geschafft, aber für den Zweck meiner App muss ich auf die Benutzerdaten zugreifen, insbesondere müssen Benutzer in der Lage sein, Videos zu mögen und zu kommentieren. Also begann ich mit der Implementierung von OAuth2 und versuchte genau die gleichen Abfragen wie zuvor (Videoinformationen abzurufen).
Hallo, genau das ist das Beispiel von Ibrahim Ulukaya (https://github.com/youtube/yt-direct-lite-android). Es sieht in der Tat die beste Lösung aus. Das Problem ist, dass ich diesen Fehler erhalte: "Es gab einen IO-Fehler: com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission: null" im Logcat, und offensichtlich funktioniert die API nicht. Irgendeine Idee, wie man es löst? –
http://stackoverflow.com/questions/14383965/userrecoverableauthexception-needpermission Ich bin sicher, Sie wissen das, aber Ihre Anwendung verschiedene Berechtigungen, um die Gerätefunktionen (zum Beispiel Internet!) Für den Zugriff auf und den Zugang YouTube auf den Benutzer Namen. Welche Berechtigungen Sie benötigen, hängt vom ausgewählten Authentifizierungsmechanismus ab. Sehen Sie sich die verlinkten Android-Diskussionen an, in denen es um GET_ACCOUNTS und USE_CREDENTIALS geht. Wie sieht dein Manifest aus? (Es kann sich lohnen, dies als separate Frage zu stellen) –
Siehe Manifest eghttps: //github.com/youtube/yt-direct-lite-android/blob/master/app/src/main/AndroidManifest.xml Sie müssen auch um Ihre Entwickler-API-Anmeldeinformationen, z - http://stackoverflow.com/questions/29656454/declare-google-api-key-in-manifest-for-youtube-api. Es kann hilfreich sein, genau zu wissen, was Ihre Anwendung zu tun versucht. –