Spotify 登录错误 -canOpenURL

Posted

技术标签:

【中文标题】Spotify 登录错误 -canOpenURL【英文标题】:Spotify login error -canOpenURL 【发布时间】:2016-05-16 19:11:33 【问题描述】:

我正在尝试了解 Spotify 的登录/授权过程。我正在关注一个教程并最终得到了这段代码。当我尝试登录时,我收到此错误: -canOpenURL:URL 失败:“spotify-action://” - 错误:“(null)”

我检查了 repo,发现我需要在 LSApplicationQueriesSchemes 下的 Info.plist 中添加 spotify-action 和 spotify。但是在这样做之后,我仍然收到上述错误。

class SpotifyLoginViewController: UIViewController, SPTAuthViewDelegate
let kclientID = " my client id"
let kcallbackURL = "my callback"

@IBAction func loginSpotify(sender: AnyObject)
    SPTAuth.defaultInstance().clientID = kclientID
    SPTAuth.defaultInstance().redirectURL = NSURL(string: kcallbackURL)
    SPTAuth.defaultInstance().requestedScopes = [SPTAuthStreamingScope]
    SPTAuth.defaultInstance().sessionUserDefaultsKey = "SpotifySession"
    //SPTAuth.defaultInstance().tokenSwapURL = NSURL(string: ktokenSwapURL) //you will not need this initially, unless you want to refresh tokens
   // SPTAuth.defaultInstance().tokenRefreshURL = NSURL(string: ktokenRefreshServiceURL)//you will not need this unless you want to refresh tokens

    let spotifyAuthViewController = SPTAuthViewController.authenticationViewController()
    spotifyAuthViewController.delegate = self
    spotifyAuthViewController.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext
    spotifyAuthViewController.definesPresentationContext = true
    presentViewController(spotifyAuthViewController, animated: false, completion: nil)




func authenticationViewController(authenticationViewController: SPTAuthViewController!, didLoginWithSession session: SPTSession!) 
    print("Logged In")


func authenticationViewController(authenticationViewController: SPTAuthViewController!, didFailToLogin error: NSError!) 
    print("Failed to Log In")
    print(error)
    authenticationViewController.clearCookies(nil)


func authenticationViewControllerDidCancelLogin(authenticationViewController: SPTAuthViewController!) 
    print("User Canceled Log In")
    authenticationViewController.clearCookies(nil)


【问题讨论】:

【参考方案1】:

如果您的设备上未安装 Spotify 应用程序,则打开 Spotify 的操作将失败,并且控制台将打印错误:-canOpenURL: failed for URL: "spotify-action://" - error: "(空值)”。任何未安装在您的设备上的应用都会发生这种情况,并且会尝试启动不存在的应用。

【讨论】:

【参考方案2】:

如果您的设备上未安装 Spotify 应用。因此您无法使用 URL“spotify-action://”打开 Spotify Original 应用程序。 您可以使用网络浏览器登录。 它将打开 spotify.com 并在身份验证后重定向到重定向 url(应用程序链接)。

您只需更改一个参数。 sessionManager.initiateSession(with: scope, options: .clientOnly, presenting: self) 该参数是选项。 请将其更改为 .default。 因此它将打开 safari 浏览器以登录 spotify 帐户。 我希望这会有所帮助。

【讨论】:

以上是关于Spotify 登录错误 -canOpenURL的主要内容,如果未能解决你的问题,请参考以下文章

Android Spotify SDK登录错误意外令牌

为啥 Spotify 登录不起作用?

Spotify 登录 Spotify iOS sdk beta 版本 3

Spotify 使用 Meteor 和 xinranxiao 登录:accounts-spotify

Spotify ios SDK 登录:无效的重定向 URI

使用android sdk登录spotify时如何获取帐户类型