【发布时间】:2019-05-27 01:58:06
【问题描述】:
我正在尝试在我的 iOS 应用程序中使用 spotify,到目前为止效果很好。在用户登录并给我请求的范围后,我将存储会话,他们可以使用应用程序内的所有内容。访问令牌过期 60 分钟后问题出现。那时我正在检索 401,我正在调用我的函数来更新我的访问令牌,但不知何故这根本不起作用。
private let sessionManager = AppDelegate().sessionManager
func initiateSpotifySession() {
let requestedScopes: SPTScope = [.playlistModifyPublic, .playlistModifyPrivate, .ugcImageUpload]
sessionManager.initiateSession(with: requestedScopes, options: .default)
}
func renewSpotifySession() {
let session = loadSpotifySession()
if session != nil {
sessionManager.renewSession()
} else {
print("login required")
}
}
initiateSpotifySession 可以完美运行,但是一旦我请求sessionManager.renewSession() 函数,它就不起作用了。没有出现错误,也没有调用以下委托;
func sessionManager(manager: SPTSessionManager, didRenew session: SPTSession) {
print("running the renewal")
}
我的 iOS 应用程序控制台记录了类似的内容;
Task <C4C4A6C0-64D7-49EC-81AF-D6E581CD27AE>.<1> finished with error - code: -999,仅此而已。
刷新令牌可用,我可以打印它。不知何故,renewSession 不起作用。
我用于刷新和检索的服务器是 Spotify 在其快速入门指南中提供的 1 步单击 Heroku。
【问题讨论】:
-
没有崩溃或类似情况?是否有错误的委托方法?
-
是的,有,而且我在那边也有打印声明,但也没有抛出任何东西。
-
是的,如果没有任何问题,除非有人在我不确定您如何继续前进之前遇到了同样的问题。也许联系 Spotify?可能是他们系统中的错误。您还可以使用 Charles 代理之类的应用程序来检查响应并查看 Spotify 给您的响应类型,这可能会提示您正在发生什么。
-
嗯,很公平。今晚将尝试仅使用更新功能运行一个空项目。如果这也不起作用,我会自己联系 Spotify 并询问他们发生了什么。无论如何,谢谢。
-
创建了一个示例项目。每当我在启动函数中立即调用更新函数时,它就会起作用。只要我请求更新功能,它就会返回-999。如果您仍然有兴趣解决这个问题@CharlieFish,我可以在我原来的问题中发布更多代码!