在 AWS 上使用 Spotipy 在 Python 中对 Spotify 进行用户身份验证

User authentication for Spotify in Python using Spotipy on AWS

我目前正在构建一个网络应用程序,它要求 Spotify 用户使用他们的凭据登录才能访问他们的播放列表

我正在为 Spotify 的 Web API 使用 Spotipy python 包装器 API 并使用

生成访问令牌
token = util.prompt_for_user_token(username,scope,client_id,client_secret,redirect_uri)

代码在我的本地机器上运行没有任何问题。但是,当我在 AWS 上部署网络应用程序时,它不会继续重定向到 uri 并允许用户登录。

我已经尝试通过 SCP 将“.cache-username”文件传输到我的 AWS 机器实例并让它以有限的方式工作。

这个问题有解决办法吗?我是 AWS 的新手,因此没有太多可做的,也不知道去哪里看。任何帮助将不胜感激。提前致谢!!

快捷方式

  1. 运行 本地脚本以便用户可以登录一次
  2. 在本地项目文件夹中,您会找到一个文件.cache-{userid}
  3. 将此文件复制到您在 AWS 上的项目文件夹中
  4. 它应该有效

数据库方式

Github 目前有一个开放的功能请求建议将令牌存储在数据库中。欢迎订阅问题或贡献 https://github.com/plamere/spotipy/issues/51

也可以编写一些代码将新令牌保存到数据库中,然后从中读取。这就是我在使用 DynamoDB 作为 AWS Lambda 的一部分所做的事情,它不是很好,但它完美地工作 https://github.com/resident-archive/resident-archive/blob/a869b73f1f64538343be1604d43693b6165cc58a/functions/to-spotify/main.py#L129..L157


API 方式

这可能是最好的方式,因为它允许多个用户同时登录。然而,它有点复杂,需要您托管一个可由 URL.

访问的服务器

此示例使用 Flask,但可以将其改编为 Django,例如 https://github.com/plamere/spotipy/blob/master/examples/app.py