将多个范围与 spotipy 一起使用
Posted
技术标签:
【中文标题】将多个范围与 spotipy 一起使用【英文标题】:Using multiple scopes with spotipy 【发布时间】:2019-04-12 13:55:55 【问题描述】:我正在尝试使用 Spotipy 库来提取用户曲目并制作播放列表。每个函数单独工作(getTracks、makePlaylist);但是,它们需要不同的范围。
def generate_token(scope):
token = util.prompt_for_user_token(
username='al321rltkr20p7oftb0i801lk',
scope=('user-library-read','playlist-modify-private'),
client_id='0e7ea227ef7d407b8bf47a4c545adb3c',
client_secret='267e96c4713f46d4885a4ea6a099ead4',
redirect_uri='http://www.google.com')
return token
这会返回错误“AttributeError: 'tuple' object has no attribute 'split'” 当我尝试将两个范围作为列表发送时,我也会收到错误。有想法该怎么解决这个吗?
【问题讨论】:
查看范围的完整列表:developer.spotify.com/documentation/general/guides/scopes 【参考方案1】:scope
应该是单个字符串,而不是元组。
scope='user-library-read playlist-modify-private'
【讨论】:
这似乎不起作用。我仍然得到 401 - 使用'user-read-currently-playing user-library-read user-read-recently-played user-modify-playback-state'
时缺少权限我可以使用 current_user_playlists()
但不能使用 current_playback
。我究竟做错了什么?已授予权限,我有正确的令牌。
没关系。 user-read-currently-playing
还不够。我必须包含user-read-playback-state
才能让current_playback()
工作
据我所知,这会产生一个OSError: [Errno 48] Address already in use
。
不知道为什么我会得到OSError
,就像在演示app.py
中一样,多个作用域都可以工作。我在spotipy.get_user()
上收到错误消息,目前正在将其包装在try, except OSError
中,并且应用程序正在运行。以上是关于将多个范围与 spotipy 一起使用的主要内容,如果未能解决你的问题,请参考以下文章
Spotipy client_credential_manager 未提供令牌
获得使用 Python3 的 spotipy 修改 Spotify 播放列表的授权