【问题标题】:Spotify without Redirect URI?没有重定向 URI 的 Spotify?
【发布时间】:2015-03-12 17:36:57
【问题描述】:

我正在使用 Spotipy 从授权用户那里获取一些 spotify 数据,但我不明白如何授权我的帐户。

我认为需要在 http://www.myapp.com/callback 托管某些东西的服务器是否正确?需要退回什么?也许我在这里完全遗漏了一些东西......我对整个所需的重定向 URI 事情感到非常困惑......

我正在做一个程序,没有网站,我应该如何处理授权?重定向 URI 究竟应该做什么?

谢谢

编辑:

现在使用 http://localhost:8888/callback 作为我的重定向 URI,这样就可以了。我什至不确定为什么,因为那个端口上没有运行任何东西。

【问题讨论】:

    标签: python spotify


    【解决方案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 项目。但是我现在已经解决了,请参阅我的原始帖子编辑。不过感谢您的解释。
    猜你喜欢
    • 2014-10-03
    • 1970-01-01
    • 2021-03-12
    • 2020-07-16
    • 2021-06-06
    • 2016-01-02
    • 2017-05-31
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多