Tôi có một ứng dụng cho phép người dùng truyền phát bài hát từ spotify. Vì vậy, để đạt được điều đó, tôi cần phải gia hạn phiên theo thời gian bất cứ khi nào người dùng muốn phát bài hát từ spotify. Tôi đang sử dụng sdk spotify mới nhất (beta-9) và tôi hiện đang theo dõi hướng dẫn từ https://www.youtube.com/watch?v=GeO00YdJ3cE. Trong hướng dẫn đó, chúng tôi cần trao đổi mã thông báo làm mới nhưng khi tôi xem từ https://developer.spotify.com/technologies/spotify-ios-sdk/tutorial/ không cần phải làm mới trao đổi mã thông báo.Làm cách nào để gia hạn phiên spotify?
và tôi kết thúc không sử dụng hoán đổi mã thông báo, khi tôi làm mới phiên của tôi sau đó chơi bài hát với phiên mới, tôi có dưới đây lỗi:
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.}
Và tôi đang sử dụng mã này dưới đây, để đổi mới của tôi phiên:
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
}
và dưới mã để dòng nhạc 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)")
}
})
})
}
tôi vẫn cần phải làm mới mã thông báo hoán đổi cho sdk mới nhất? Hoặc có cái gì đó thiếu với mã của tôi?
Làm thế nào có thể sử dụng. mã herokuapp trong ứng dụng iOS? – Parthpatel1105
điều này khá tuyệt vời. Cám ơn rất nhiều vì cái đó! nhưng tôi nhận được: 'JSON văn bản đã không bắt đầu với mảng hoặc đối tượng và tùy chọn để cho phép fragments không set.' bất kỳ ý tưởng? –
'Sử dụng URL của máy chủ được tạo ở trên thêm các thông tin sau khi định cấu hình SPTAuth.defaultInstance():' u có thể giải thích thêm – Jack