首页 > 解决方案 > 如何在 Python 中格式化对 Spotify Web API 的 GET 请求?

问题描述

我是使用 API 的新手。我正在尝试创建一个脚本,该脚本将从 Spotify 输出公共播放列表的曲目。我在早期遇到了一个障碍:我不确定如何准确格式化我的 GET 请求以检索相关播放列表的曲目以及我将 OAuth 访问令牌放在哪里。我当前的尝试返回 401 状态码。

到目前为止我所做的:

import requests

from spotifysecrets import client_id as cid, client_secret as cs

AUTH_URL = "https://accounts.spotify.com/api/token"

token_req = requests.post(AUTH_URL, {
    "grant_type": "client_credentials",
    "client_id": cid,
    "client_secret": cs
    })

access_token = token_req.json()["access_token"]

到目前为止,一切似乎都运行良好。问题出现在下一步。

pl_id = "…"  # I have elided the actual playlist ID for the purposes of this question
tracks = "https://api.spotify.com/v1/playlists/{}/tracks".format(pl_id)
songs_req = requests.get(tracks, {
    "Authorization": "Basic {}".format(access_token)
    })

编辑

我试过使用

songs_req = requests.get(tracks, headers={
    "Authorization": "Basic {}".format(access_token)
    })

相反,但这会产生 400 错误。

标签: pythonpython-requestsspotify

解决方案


我查看了 api,我相信你有一个语法错误:

songs_req = requests.get(tracks, {
    "Authorization": "Basic {}".format(access_token)
    })

应该:

songs_req = requests.get(tracks, {
    "Authorization": "Bearer {}".format(access_token)
    })

推荐阅读