【发布时间】:2018-02-18 18:12:57
【问题描述】:
我试图避免每次会话在 Spotify for SDK 中过期时向用户授予弹出式权限。
一小时后弹出弹出窗口可能会再次向用户授予权限,以便他可以在我的应用程序上播放来自 Spotify 的曲目,我在尝试更新会话时遇到的错误:
[PLAYER][PLAY][SPOTIFY] Error renew Session Optional(Error Domain=com.spotify.auth Code=0 "Missing token refresh service." UserInfo={NSLocalizedDescription=Missing token refresh service.})
[PLAYER][SPOTIFY] Session could not be renewed,popup login
这里是我如何尝试更新会话:
//Renew Session
func renewSession(completion:@escaping (Bool)->())
{
print("[PLAYER][PLAY][SPOTIFY] Renew Session requested ")
let auth = SPTAuth.defaultInstance()
auth?.renewSession(auth?.session, callback: { (error, session) in
if (error != nil)
{
print("[PLAYER][PLAY][SPOTIFY] Error renew Session \(String(describing: error))")
completion(false)
return
}
auth?.session = session
if auth?.session.isValid() == true
{
print("[PLAYER][PLAY][SPOTIFY] Renew Session Success")
completion(true)
}else
{
print("[PLAYER][PLAY][SPOTIFY] Renew Session Failed")
completion(false)
}
})
}
有什么解决办法吗?
【问题讨论】:
-
目前 SDK 自身可能存在问题。获取加密的刷新令牌 nil 因此无法更新会话。 github.com/spotify/ios-sdk/issues/880 临时我使用已弃用的 SPTAuthViewController 解决了这个问题,我尝试了所有方法并投入了近 36 小时来获得刷新令牌。
标签: ios session swift3 spotify