Ich schreibe eine iOS-App, die Google GIDSignIn [1] verwendet, um Benutzer anzumelden, und GTLServiceYoutube, um Abfragen gegen Youtube auszuführen (Hochladen von Videos und Abrufen von Youtube-Videolisten).
Dies funktioniert gut, wenn sich der Benutzer zum ersten Mal anmeldet, aber nach ungefähr einer Stunde läuft das Zugriffstoken ab und der Benutzer kann aufgrund eines 401-Fehlers (ungültige Anmeldedaten) keine Abfragen mehr mit GTLServiceYoutube ausführen.
Ich verwende den folgenden Code, um die GTMOAuth2Authentication nach erfolgreicher Anmeldung festzulegen:
%Vor% wobei [[UserManager sharedInstance].youTubeService
eine Instanz von GTLServiceYouTube ist.
Das einzige Problem ist mit dem GTLServiceYouTube. GIDSignIn scheint die Aktualisierungstoken zu behandeln, so dass der Benutzer nach der ersten Anmeldung immer angemeldet ist. Aber die GTLOAuth2Authentication funktioniert nur bei der ersten Anmeldung und ist nach einer Stunde unterbrochen.
Also meine Frage ist: Mache ich hier etwas falsch? Oder fehlt mir etwas, um nach der Aktualisierung das richtige Zugriffstoken in GTMOAuth2Authentication zu erhalten?
[1] Ссылка
Ich glaube, die korrekte Vorgehensweise besteht darin, den Benutzer wieder zu registrieren, wenn die App erneut geöffnet wird oder das Token aktualisiert werden muss. Dies kann durch Aufruf von [[GIDSignIn sharedInstance] signInSilently]
geschehen. Wenn die Anmeldung abgeschlossen ist, aktualisieren Sie den Schlüsselbund oder Datenspeicher mit Ihren neuen Authentifizierungs-Token.
Ab dem GoogleSignIn 2.1.0 aktualisiert ein Aufruf von [GIDSignIn sharedInstance].signInSilently;
die in [GIDSignIn sharedInstance].currentUser.authentication
gespeicherten Anmeldeinformationen.
Führen Sie pod update
in Ihrem Projekt aus, um auf das 2.1.0 SDK zu aktualisieren, wenn Sie Cocoapods verwenden.
Tags und Links ios youtube-api oauth-2.0 google-plus