Mam Spotify logowanie w mojej aplikacji i spróbować dokonał Chcesz zamówićSpotify zarządzania sesją
Logowanie funkcji
func getSpotifyToken(fromController controller: UIViewController, success: (spotifyToken: String?) -> Void, failure: (error: NSError?) -> Void) {
loginSuccessBlock = success
loginFailureBlock = failure
SPTAuth.defaultInstance().clientID = SpotifyClientID
SPTAuth.defaultInstance().redirectURL = NSURL(string: SpotifyRedirectURI)
SPTAuth.defaultInstance().requestedScopes = [SPTAuthStreamingScope, SPTAuthPlaylistReadPrivateScope]
let spotifyLoginController = SPTAuthViewController.authenticationViewController()
spotifyLoginController.delegate = self
spotifyLoginController.clearCookies {() -> Void in
controller.presentViewController(spotifyLoginController, animated: true, completion: nil)
}
}
Sprawdź, czy sesja istnieje
private func spotifyConnected() -> Bool {
if SPTAuth.defaultInstance().session == nil {
self.loadSpotifySession()
}
return SPTAuth.defaultInstance().session != nil
}
Zapisz sesję
private func saveSpotifySession() {
let sessionData = NSKeyedArchiver.archivedDataWithRootObject(SPTAuth.defaultInstance().session)
NSUserDefaults.standardUserDefaults().setObject(sessionData, forKey: Spotify_Session_Key)
NSUserDefaults.standardUserDefaults().synchronize()
}
sesja ładowania
private func loadSpotifySession() {
if let sessionData = NSUserDefaults.standardUserDefaults().objectForKey(Spotify_Session_Key) as? NSData {
let session = NSKeyedUnarchiver.unarchiveObjectWithData(sessionData) as! SPTSession
SPTAuth.defaultInstance().session = session
}
}
Renew sesji - zadzwoń w aplikacji rozpocząć
func renewSpotifySession() {
guard spotifyConnected() else {
return
}
SPTAuth.defaultInstance().renewSession(SPTAuth.defaultInstance().session) { (error: NSError!, session: SPTSession!) -> Void in
if session != nil {
SPTAuth.defaultInstance().session = session
} else {
print("Failed to refresh spotify session")
}
}
}
renewSession powrotną nil. Widziałem kilka informacji o refreshToken, ale nie wiem, gdzie mogę go złapać.
Jak mogę odnowić sesję spotify? może zrobiłem coś złego?
Jak rozumiem , Muszę zaimplementować funkcje wymiany i odświeżania na moim serwerze i dodać te adresy URL do SPTAuth(). Spotify automatycznie zaktualizuje moje tokeny za pomocą mojego backendu? – Viktor
Nie powiedziałbym automatycznie - nadal musisz okresowo sprawdzać, czy masz ważny token i odśwież go, jeśli jest to konieczne. Tokeny wygasają po 60 minutach. – brki
Popraw mnie, jeśli się mylę: Dodaję funkcje wymiany i odnowienia przez serwer i dodam adresy URL do STPAuth(). Po zalogowaniu otrzymam accessToken z wygaśnięciem 1 godziny. Czy po zamknięciu mojego klienta i ponownym otwarciu po 2h nastąpi przywrócenie sesji "loginOrRenewSession"? Czy muszę okresowo ręcznie odnawiać tokeny dostępu dla wszystkich użytkowników na serwerze? – Viktor