React-Native Spotify SDK iOS:关闭身份验证窗口

Posted

技术标签:

【中文标题】React-Native Spotify SDK iOS:关闭身份验证窗口【英文标题】:React-Native Spotify SDK iOS: Dismiss auth window 【发布时间】:2017-09-16 11:23:42 【问题描述】:

我一直在使用以下模块开发一个 react-native 应用程序:

https://github.com/viestat/react-native-spotify

目前,应用程序打开身份验证窗口以登录到 spotify。我确实得到了成功的回报,但我很困惑我现在如何摆脱弹出的登录窗口。我知道它应该重定向回我的应用程序,但它只是与注销/我的帐户按钮保持在同一个窗口上。

任何想法我将如何在返回的成功消息上关闭此窗口?

SpotifyAuth.setClientID('*****','*****', ['streaming', 'playlist-read-private'], (error)=>
          if(error)
            console.log(error);
           else 
            console.log('success');
          
        );

【问题讨论】:

嗨史蒂夫,你能分享这个项目吗,我需要确定你是否已经在你的 info.plist(the call has to be added on web too while creating the application) 中添加了callback,你也检查了这个developer.spotify.com/technologies/spotify-ios-sdk/tutorial/… ? 【参考方案1】:

如果您查看代码,登录屏幕(确切地说是SpotifyLoginViewController)会在this line of code 处关闭屏幕。根据这里的逻辑,如果您传递给 setClientID API 的 redirectURL 与您在 Spotify 开发者帐户中定义的重定向 URI 不匹配(请参阅他们的 authorization guide) - 屏幕将不会被解雇。

我建议你在它检查 url 方案之前在这个函数中设置一个断点,看看那里发生了什么。可能是您的帐户配置不正确,或者正在向此 API 发送错误的 URL(或此包不符合预期格式的 URL)。

【讨论】:

我已将我的 URL 方案添加到我的项目中。我会截取一些截图,以防它不应该是这样。我确实尝试了多种方法。在某些情况下,它会说“URI 无效”,而在与我的方案匹配的情况下,它不会被忽略。 我仍然认为最好的方法是调试这段代码;看看你从url.scheme 得到了什么,你在myScheme 得到了什么,其他一切都只是推测:) 我从来没有使用过 Spotify API 或这个包,所以我不确定我是否能够除此之外的帮助.. 您需要知道从 Spotify 返回的 ur.scheme 以了解问题所在 可能是个愚蠢的问题。我将如何在 obj-c 中执行 var_dump/console.log 类型的事情? 您可以使用NSLog,它相当于console.log。例如,将值分配给myScheme 后,添加以下行:NSLog(@"myScheme: %@, URL scheme: %@", myScheme, url.scheme);,但您只会在 iOS 日志中看到它(而不是在 chrome 中)。使用断点并检查值也应该很简单 - 只需单击行号以添加断点并从 Xcode 运行项目 查看添加的图片。【参考方案2】:

您的重定向 URL 似乎配置错​​误。

    确保在 Spotify 我的应用程序仪表板中输入了您的 URI。

    确保您的 URI 符合以下要求:

    URI 中的所有字符都应小写。 您的 URI 前缀(第一个冒号之前的部分)对于您的应用程序必须是唯一的。它不能是像 http 这样的通用前缀。 您的 URI 前缀只能由您的应用程序用于验证 Spotify。如果您的应用程序已经为其他用途处理了 URL 方案,则不应回收它。 最好在其中包含应用程序的名称。 您还应该有一个指向 URI 的路径组件(第一组正斜杠之后的部分,例如 your-app://callback

【讨论】:

以上是关于React-Native Spotify SDK iOS:关闭身份验证窗口的主要内容,如果未能解决你的问题,请参考以下文章

Spotify 网络播放 SDK 集成

将 Spotify 的 Android SDK 导入 Android Studio

Spotify SDK 播放器不工作:错误 Domain=com.spotify.ios-sdk.playback Code=1 “由于未指定的问题,操作失败。”

使用 sdk spotify-android-auth 从 Spotify 注销

Spotify 网络播放 SDK

Spotify 登录 Spotify iOS sdk beta 版本 3