为啥 Spotify 登录不起作用?

Posted

技术标签:

【中文标题】为啥 Spotify 登录不起作用?【英文标题】:Why is the spotify login not working?为什么 Spotify 登录不起作用? 【发布时间】:2016-08-26 15:21:37 【问题描述】:

我正在使用 spotify api,当我尝试登录时出现错误。这是错误-canOpenURL: failed for URL: "spotify-action://" - error: "(null)"。下面我已经包含了所有必要的代码。我究竟做错了什么?我正在使用最新的 soptify api 版本。

登录

let kClientId = "hidden"
let kCallbackURL = "testapp://callback"

@IBAction func loginspotify(sender: AnyObject) 
    let auth = SPTAuth.defaultInstance()
    auth.clientID = kClientId
    auth.redirectURL = NSURL(string: kCallbackURL)
    auth.tokenSwapURL = NSURL(string: kTokenSwapURL)
    auth.tokenRefreshURL = NSURL(string: kTokenRefreshServiceURL)
    auth.requestedScopes = [SPTAuthUserReadPrivateScope,SPTAuthStreamingScope,SPTAuthPlaylistModifyPrivateScope,SPTAuthUserReadEmailScope,SPTAuthUserLibraryModifyScope,SPTAuthUserLibraryReadScope,SPTAuthPlaylistReadPrivateScope,SPTAuthUserReadPrivateScope]
    var loginURL = auth.loginURL
    print(loginURL)
    UIApplication.sharedApplication().openURL(loginURL)



AppDelegate

let kClientId = "hidden"
let kCallbackURL = "testapp://callback"

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 
    if(SPTAuth.defaultInstance().canHandleURL(url))
        SPTAuth.defaultInstance().handleAuthCallbackWithTriggeredAuthURL(url, callback: (error: NSError!, session: SPTSession!) -> Void in
            if(error != nil)
                print("AUTHENTICATION ERROR \(error)")
                return
            

            let userDefaults = NSUserDefaults.standardUserDefaults()
            let sessionData = NSKeyedArchiver.archiveRootObject(session, toFile: "sessiondata")
            userDefaults.setObject(sessionData, forKey: "SpotifySession")
            userDefaults.synchronize()
            NSNotificationCenter.defaultCenter().postNotificationName("loginSuccessful", object: nil)

        )
    
    return true

【问题讨论】:

【参考方案1】:

您需要运行一个单独的交换令牌服务器,该服务器使用您的 Spotify 凭据对共享密钥进行哈希处理。这是 RC5 标准的一部分。

这是一个交换服务的例子:

https://github.com/spotify/ios-sdk/blob/master/Demo%20Projects/spotify_token_swap.rb

【讨论】:

据发现它似乎没有提到任何关于交换服务的内容 看看这个页面:developer.spotify.com/technologies/spotify-ios-sdk/tutorial

以上是关于为啥 Spotify 登录不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Spotify Web API 客户端范围不起作用

为啥IOS13用facebook登录不起作用?

为啥用facebook登录不起作用? (除了检查网址,如何调试这个问题?)

为啥在 google play store 上发布后 google 和 facebook 登录不起作用

为啥用于 facebook 登录的 redirect_uri 的自定义方案不起作用?

无法弄清楚为啥我的注销按钮不起作用(php)[重复]