Ho un'applicazione che consente agli utenti di riprodurre in streaming i brani da spotify. Quindi, per farlo, ho bisogno di rinnovare di volta in volta la sessione ogni volta che gli utenti vogliono trasmettere la canzone da Spotify. Sto usando l'ultimo spotify sdk (beta-9), e attualmente sto seguendo il tutorial da https://www.youtube.com/watch?v=GeO00YdJ3cE. In questo tutorial è necessario lo scambio di token di aggiornamento ma quando ho guardato da https://developer.spotify.com/technologies/spotify-ios-sdk/tutorial/ non è necessario aggiornare il token di swap.Come rinnovare la sessione spotify?
e io alla fine non si usa lo swap di token, quando rinfresco la mia sessione poi giocare canzone con rinnovata sessione, ho avuto sotto l'errore:
Error Domain=com.spotify.ios-sdk.playback Code=8 "Login to Spotify failed because of invalid credentials." UserInfo=0x7f840bf807b0 {NSLocalizedDescription=Login to Spotify failed because of invalid credentials.}
e sto usando questo codice qui sotto, per rinnovare il mio sessione:
let userDefaults = NSUserDefaults.standardUserDefaults()
if let sessionObj : AnyObject = NSUserDefaults.standardUserDefaults().objectForKey("spotifySession") {
let sessionDataObj : NSData = sessionObj as! NSData
let session = NSKeyedUnarchiver.unarchiveObjectWithData(sessionDataObj) as! SPTSession
self.playUsingSession(session)
if !session.isValid() {
SPTAuth.defaultInstance().renewSession(session, callback: { (error : NSError!, newsession : SPTSession!) -> Void in
if error == nil {
let sessionData = NSKeyedArchiver.archivedDataWithRootObject(session)
userDefaults.setObject(sessionData, forKey: "spotifySession")
userDefaults.synchronize()
self.session = newsession
self.playUsingSession(newsession)
}else{
println("renew session having problerm >>>>> \(error)")
}
})
}else{
println("session is still valid")
self.playUsingSession(session)
}
}else{
spotifyLoginButton.hidden = false
}
e sotto il codice per lo streaming di canzoni di Spotify:
func playUsingSession(sessionObj:SPTSession!){
if spotifyPlayer == nil {
spotifyPlayer = SPTAudioStreamingController(clientId: kSpotifyClientID)
}
spotifyPlayer?.loginWithSession(sessionObj, callback: { (error : NSError!) -> Void in
if error != nil {
println("enabling playback got error : \(error)")
return
}
var spotifyTrackUri : NSURL = NSURL(string: "spotify:track:3FREWTEY2uFxOorJZMmZPX")!
self.spotifyPlayer!.playURIs([spotifyTrackUri], fromIndex: 0, callback: { (error : NSError!) -> Void in
if error != nil {
println("\(error)")
}
})
})
}
ho ancora bisogno di aggiornare lo scambio di token per l'ultimo sdk? O c'è qualcosa che manca con il mio codice?
Come si può usare. codice herokuapp nell'app iOS? – Parthpatel1105
questo è davvero fantastico. grazie mille per questo! ma sto ricevendo: 'Il testo JSON non iniziava con l'array o l'oggetto e l'opzione per consentire ai frammenti non impostati. Qualche idea? –
'Usando l'URL del server creato sopra aggiungi quanto segue quando configuri il tuo SPTAuth.defaultInstance():' puoi spiegarci di più – Jack