【问题标题】:Spotify Session Renewal IssueSpotify 会话更新问题
【发布时间】: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,我可以在我原来的问题中发布更多代码!

标签: ios swift spotify


【解决方案1】:

好的,解决了。我正在存储我的会话,但忘记将它重新分配给 sessionManager。这样我的会话总是为零,并且在请求续订时没有刷新令牌导致它不返回新的访问令牌。

通过重新分配会话解决了这个问题!

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 2022-07-01
    • 1970-01-01
    • 2012-01-12
    • 1970-01-01
    • 2016-06-27
    • 2013-07-07
    • 2013-02-04
    • 1970-01-01
    相关资源
    最近更新 更多