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 的 Android SDK 导入 Android Studio
Spotify SDK 播放器不工作:错误 Domain=com.spotify.ios-sdk.playback Code=1 “由于未指定的问题,操作失败。”