Python 请求库 header 授权问题
Python requests library header authorization issue
我正在尝试使用 Spotify Web API 访问我可用的 Spotify 设备。有关我尝试访问的特定 API 端点,请参阅此 link。我在 macOS Sierra 上的 virtualenv 中使用 Python 2.7。
我已经有一个授权令牌,我用它来进行其他几个函数调用,所以我知道它是有效的。然而,这是我第一次使用请求库,而不是将 http 请求抽象为 Spotipy 函数调用的 Spotipy 包装器。
上面 link 中的文档指出我需要在 header 中传递我的授权令牌。我知道在请求模块中,您应该将 headers 作为字典传递,其中键和值都是字符串。
这是我用来发出请求的代码:
token_string = token.encode('ascii','ignore')
print type(token_string)
headers = {"Authorization":token_string}
r=requests.get("https://api.spotify.com/v1/me/player/devices", headers=headers)
我将令牌编码为字符串,因为我读到请求模块更喜欢字符串而不是 unicode,并且令牌最初是 unicode。
我不断收到 400 错误(请参阅下面的打印内容),这是一个授权问题。我认为问题可能是我没有正确传递授权令牌。有人对此有任何见解吗?
<Response [400]>
根据他们在发布页面上的示例判断,您应该使用 Bearer
前缀进行授权(对于 'why?' 检查 5。令牌将返回到您的应用程序 节 Spotify Web API Authorization Guide), 所以:
headers = {"Authorization": "Bearer {}".format(token_string)}
r = requests.get("https://api.spotify.com/v1/me/player/devices", headers=headers)
如果您的令牌有效,那应该可以使用,您不需要进行任何编码或任何操作 - 只需将其按面值存储在 token_string
.
中
已经有 Python Spotify 客户端模块,所以与其自己争论,为什么不使用其中一个,比如 spotipy
which is even referenced on the official Spotify API examples 页面?
我正在尝试使用 Spotify Web API 访问我可用的 Spotify 设备。有关我尝试访问的特定 API 端点,请参阅此 link。我在 macOS Sierra 上的 virtualenv 中使用 Python 2.7。
我已经有一个授权令牌,我用它来进行其他几个函数调用,所以我知道它是有效的。然而,这是我第一次使用请求库,而不是将 http 请求抽象为 Spotipy 函数调用的 Spotipy 包装器。
上面 link 中的文档指出我需要在 header 中传递我的授权令牌。我知道在请求模块中,您应该将 headers 作为字典传递,其中键和值都是字符串。
这是我用来发出请求的代码:
token_string = token.encode('ascii','ignore')
print type(token_string)
headers = {"Authorization":token_string}
r=requests.get("https://api.spotify.com/v1/me/player/devices", headers=headers)
我将令牌编码为字符串,因为我读到请求模块更喜欢字符串而不是 unicode,并且令牌最初是 unicode。
我不断收到 400 错误(请参阅下面的打印内容),这是一个授权问题。我认为问题可能是我没有正确传递授权令牌。有人对此有任何见解吗?
<Response [400]>
根据他们在发布页面上的示例判断,您应该使用 Bearer
前缀进行授权(对于 'why?' 检查 5。令牌将返回到您的应用程序 节 Spotify Web API Authorization Guide), 所以:
headers = {"Authorization": "Bearer {}".format(token_string)}
r = requests.get("https://api.spotify.com/v1/me/player/devices", headers=headers)
如果您的令牌有效,那应该可以使用,您不需要进行任何编码或任何操作 - 只需将其按面值存储在 token_string
.
已经有 Python Spotify 客户端模块,所以与其自己争论,为什么不使用其中一个,比如 spotipy
which is even referenced on the official Spotify API examples 页面?