I have a login to register in my application and try to do an autologue:
Input function
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) } }
Check if the session exists
private func spotifyConnected() -> Bool { if SPTAuth.defaultInstance().session == nil { self.loadSpotifySession() } return SPTAuth.defaultInstance().session != nil }
Save session
private func saveSpotifySession() { let sessionData = NSKeyedArchiver.archivedDataWithRootObject(SPTAuth.defaultInstance().session) NSUserDefaults.standardUserDefaults().setObject(sessionData, forKey: Spotify_Session_Key) NSUserDefaults.standardUserDefaults().synchronize() }
Download Session
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 } }
Refresh Session - Call at Application Launch
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 returns zero. I saw some information about refreshToken, but I do not know where I can catch it.
How can I resume an alert session? maybe i did something wrong?
source share