我试图使用refresh_token来(显然)刷新我拥有的Spotify access_token。文档给出了一个curl语句示例:curl -H "Authorization: Basic ZjM4Zj...Y0MzE=" -d grant_type=refresh_token -d refresh_token=NgAagA...NUm_SHo https://accounts.spotify.com/api/token
下面是我的Python实现:payload = { 'grant_type': 'refresh_token', 'refresh_token': <REFRESH_TOKEN> } r = requests.post('https://accounts.spotify.com/api/token', data=payload, headers={'Authorization': 'Basic <CLIENT_SECRET>'})
在这两种情况下,我都返回{"error":"invalid_client"}
我试过在post数据中传递我的client_id和client_secret,但总是返回invalid_client。SO上有人说我需要传入代码,但代码是一次性使用的,非常短暂的对象,已经被消耗/过期。
你觉得我哪里做错了吗?
2条答案
按热度按时间9ceoxa921#
我唯一能看到的问题是你写的:
当它用你的符号表示时,应该是:
但是,由于您使用的是请求,因此可以进一步简化。如下所述:http://docs.python-requests.org/en/latest/user/authentication/只需删除头文件并将其替换为auth即可:
然而,我想这也不是代码中真正的错误,因为您以某种方式设法获得了一个刷新令牌,该令牌要求您之前成功授权一次。
xesrikrc2#
这对我很有效
https://spotipy.readthedocs.io/en/2.13.0/#spotipy.oauth2.SpotifyOAuth