没有重定向 URI 的 Spotify?
Posted
技术标签:
【中文标题】没有重定向 URI 的 Spotify?【英文标题】:Spotify without Redirect URI? 【发布时间】:2015-03-12 17:36:57 【问题描述】:我正在使用 Spotipy 从授权用户那里获取一些 spotify 数据,但我不明白如何授权我的帐户。
我认为需要在 http://www.myapp.com/callback 托管某些东西的服务器是否正确?需要退回什么?也许我在这里完全遗漏了一些东西......我对整个所需的重定向 URI 事情感到非常困惑......
我正在做一个程序,没有网站,我应该如何处理授权?重定向 URI 究竟应该做什么?
谢谢
编辑:
现在使用 http://localhost:8888/callback 作为我的重定向 URI,这样就可以了。我什至不确定为什么,因为那个端口上没有运行任何东西。
【问题讨论】:
【参考方案1】:免责声明:我对 Spotify 的 API 一无所知。但我过去曾使用过类似的 API(甚至设计过它们)。我假设他们使用某种 OpenID/OAuth 授权机制。
这些 API 的本质是它们通过浏览器工作!这个想法是 MyApp 没有您的实际 Spotify 凭据,而是它可以使用的一些签名令牌。
要将此令牌传达给 MyApp,您的问题中概述了服务器回调。因为浏览器所能做的就是重定向到您提供的特殊 URL,并添加一些信息。
所以从概念上来说有两种方法可以处理这个问题:
简单的、基于服务器的:您实际上注册了一个 myapp.com。当您的应用尝试使用 spotify 进行授权时,它首先会创建一个唯一资源 (myapp.com/authrequests/HASH-NUMBER),并将其作为回调进行通信。然后它会通过让Spotify授权它的动作,一旦这些完成,就会调用myapp.com/authrequests/HASH-NUMBER/ADDITIONAL-INFO。因此,当您的应用程序等待这发生时,它必须轮询(或打开 websocket 并监听)myapp.com。复杂的?等等,会好起来的!
更难的,依赖于操作系统的:您编写一个应用程序,将自己注册为浏览器的协议提供者。例如。我的公司使用“ableton”协议来做到这一点。因此,我们可以让浏览器生成“ableton://AUTHORIZATION-REQUEST-RESULT” URL,然后通过浏览器和操作系统将这些 URL 传递给正在运行的应用程序,从而您收到必要的秘密。
HTH
【讨论】:
我正在使用 Spotipy,我相信它已经在监听(并打开浏览器进行授权),但我没有得到的部分是 URI。我必须将其指向我自己的域吗?如果我这样做,回调需要返回什么?或者我可以只使用一个不存在的 URI 吗? 这是this python 项目。但是我现在已经解决了,请参阅我的原始帖子编辑。不过感谢您的解释。以上是关于没有重定向 URI 的 Spotify?的主要内容,如果未能解决你的问题,请参考以下文章
(iOS) Spotify 重定向 URI 错误:SpotifyLogin.LoginError.invalidUrl
PHP 中的 Spotify API 身份验证 - 重定向 URI 无效