- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个使用 spotipy 的长时间运行的脚本。一小时后(根据 Spotify API),我的访问 token 过期。我成功地捕获了这个,但我不知道从那里去哪里才能真正刷新 token 。我使用的是授权代码流,而不是客户端凭据。这是我授权的方式:
token = util.prompt_for_user_token(username,scope=scopes,client_id=client_id,client_secret=client_secret, redirect_uri=redirect_uri)
sp = spotipy.Spotify(auth=token)
我见过的所有刷新示例都涉及 oauth2
对象(例如 oauth.refresh_access_token()
),并且文档只列出了作为刷新方法的功能你的 token 。据我了解,使用授权代码流,您不需要 oauth
对象(因为您使用 prompt_for_user_token()
进行身份验证)。如果是这样,我该如何刷新我的 token ?
最佳答案
在 my github issue 上未收到任何回复后,在我看来,不使用 OAuth2 就无法刷新 token 。这违背了 the Spotipy docs 中的规定。 :
The Authorization Code flow: This method is suitable for long-running applications which the user logs into once. It provides an access token that can be refreshed.
他们的授权代码流程示例使用 prompt_for_user_token()。
我切换到 OAuth 方法,这很痛苦,因为每次我运行程序时都需要重新授权(实际上只是我测试时的一个问题,但仍然是一个问题)。由于 Spotipy 文档中没有 OAuth2 示例,我将在此处粘贴我的示例。
sp_oauth = oauth2.SpotifyOAuth(client_id=client_id,client_secret=client_secret,redirect_uri=redirect_uri,scope=scopes)
token_info = sp_oauth.get_cached_token()
if not token_info:
auth_url = sp_oauth.get_authorize_url(show_dialog=True)
print(auth_url)
response = input('Paste the above link into your browser, then paste the redirect url here: ')
code = sp_oauth.parse_response_code(response)
token_info = sp_oauth.get_access_token(code)
token = token_info['access_token']
sp = spotipy.Spotify(auth=token)
为了刷新我的 token (每小时需要一次),我使用了这个函数。何时何地调用它取决于您的程序。
def refresh():
global token_info, sp
if sp_oauth.is_token_expired(token_info):
token_info = sp_oauth.refresh_access_token(token_info['refresh_token'])
token = token_info['access_token']
sp = spotipy.Spotify(auth=token)
关于python - Spotipy 使用授权代码流刷新 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49239516/
给定歌曲名称和艺术家姓名,我尝试使用 Spotipy 找到正确的歌曲。但是,我看不到同时按歌曲名称和艺术家进行搜索的方法:要么是一个,要么是另一个: sp.search(q="Money", t
编写 Spotipy 脚本以返回给定专辑中的专辑轨道我偶尔会遇到错误: album_id = results["albums"]["items"][0]["uri"] IndexError:
我正在尝试从 Spotify 的一个播放列表中提取所有歌曲。使用 Python 中的 spotipy 包来帮助实现这一点。下面是我目前的代码,它只有 100 首轨道。我尝试在互联网上寻找解决方案,但似
我目前正在研究从 Spotify 的歌曲中提取特定项目。我想从艺术家那里获取具体的发行日期和流派。我正在从如下所示的 Pandas 数据报中提取信息: .我已经尝试手动完成大部分工作,但作为一个包含大
我使用 Spotipy 创建了一个简单的 Python 程序,该程序根据用户设备中下载的轨道显示一些推荐的轨道。但我在使程序变得用户友好方面遇到了一些麻烦。 首先,通过将我的代码上传到 GitHub
我正在尝试运行 Spotipy 文档中的一些简单代码: scope = 'user-library-read' if len(sys.argv) > 1: username = sys.arg
通常,spotipy 需要轨道 ID 作为要传递的参数,以便返回轨道名称。 假设我有两个列表,不是从 Spotify API 获得: 艺术家 [u'Moses Sumney', u'Cherry Gl
好的,伙计们,我已经阅读了我能找到的关于 spotipy 的身份验证方法的所有文档,并且我整理了一小段代码来测试它,但我无法让它工作。基本上发生的事情是我运行应用程序,它给我一个登录链接,我单击该链接
我在 Spotify 的推荐系统工作,我在 Python 上使用 spotipy。我无法使用函数 current_user_recently_played,因为 Python 表示属性 current
我正在使用 spotipy 获取我的播放列表列表。我用 if token: sp = spotipy.Spotify(auth=token) playlists = sp.user_playlists
count = 0 while True: if count > 20: count = 0 current_track
我有一个使用 spotipy 的长时间运行的脚本。一小时后(根据 Spotify API),我的访问 token 过期。我成功地捕获了这个,但我不知道从那里去哪里才能真正刷新 token 。我使用的是
我想使用 Spotipy python 包试验 Spotify API。 首先,在我的 Spotify Developer 应用程序中,我已将redirect_uri设置为https://exampl
当我尝试运行该行时: import spotipy 我收到错误消息,没有名为spotipy的模块。我尝试使用 pip、pip3 和 easy install 来安装模块。当我运行 pip freeze
我想搜索公共(public)播放列表并获取轨道。到目前为止,我的代码可以获取播放列表的名称,但不能获取轨道: import spotipy import sys sp = spotipy.Spotif
我正在尝试编写 Python 脚本以通过 Spotipy 创建 Spotify 播放列表应用。我已经在 Spotify 的开发中心成功创建了一个应用程序,并将必要的变量输入到 Spotipy 的示例中
我正在尝试将 Spotify API 与 spotipy.py python 模块结合使用。我在几个地方看到了一个具体的例子,每个人都说它有效。这是代码: CLIENT_ID = '3de0e551d
我正在尝试在Python中使用Spotipy,spotify API之一,你可以找到这个here 一切正常(除了所有开始部分之外,我没有做太多事情),直到我尝试使用 start_playback()
我一直在尝试用spotipy验证制作播放列表等 import spotipy import spotipy.util as util class buildPlayList(): def __
我正在尝试使用 Spotipy library 提取特定播放列表中的所有轨道对于 python 。 user_playlist_tracks 函数限制为 100 个轨道,无论参数限制如何。 Spoti
我是一名优秀的程序员,十分优秀!