requests.exceptions.HTTPError:400客户端错误:网址请求错误:https://accounts.spotify.com/api/token

时间:2018-12-13 23:10:47

标签: python python-3.x rest oauth-2.0 spotify

我对Python 3和Flask还是很陌生,目前正在构建一个简单的Web应用程序以使用Spotify API中的数据。

OAuth 2.0身份验证流程几乎可以正常运行,因为我可以调用https://accounts.spotify.com/authorize

在对API进行POST请求期间,我正在获取HTTP 400:

authentication_token = request.args['code']
code_payload = {
    "grant_type": "authorization_code",
    "code": str(authentication_token),
    "redirect_uri": REDIRECT_URI
}
encoded_oauth2_tokens = base64.b64encode('{}:{}'.format(CLIENT_ID, CLIENT_SECRET).encode())
headers = {"Authorization": "Basic {}".format(encoded_oauth2_tokens)}
post_request = requests.post(SPOTIFY_TOKEN_URL, data=code_payload, headers=headers)
post_request.raise_for_status()

编辑:响应正文:

"GET / HTTP/1.1" 302 - b'{"error":"invalid_client"}'

不确定请求中有什么问题。

1 个答案:

答案 0 :(得分:0)

通过此question的提示,我得以纠正此问题。

缺少向标头发送有效请求到Spotify API的片段到标头中,添加了encode_oauth2_tokens.decode()。代码如下:

encoded_oauth2_tokens = base64.b64encode('{}:{}'.format(CLIENT_ID, CLIENT_SECRET).encode())
headers = {"Authorization": "Basic {}".format(encoded_oauth2_tokens.decode())}