Python调用Spotify Web API的PUT方法控制设备播放报400错误如何解决
错误原因
- 参数名错误:指定播放设备的查询参数要求键为
device_id,你的代码中错误写为id,接口无法识别目标设备。 - 请求体格式不匹配:你已经在请求头中声明内容格式为
application/json,但使用data参数传递字典时,requests会默认将内容编码为表单格式,与声明格式不一致,后端无法解析请求内容。
修正后代码
import requests url = "https://api.spotify.com/v1/me/player/play" # 修正参数名为device_id payload = {"device_id": "f103fb953eadfb10ed89f8df3fee40be26e354ac"} headers = { 'Authorization': 'Bearer %s' % access_token # 粘贴你的访问令牌即可 } dat = { "context_uri": "spotify:album:5ht7ItJgpBH7W6vJ5BqpPr", "offset": { "position": 5 }, "position_ms": 0 } # 使用json参数传递字典,requests会自动序列化为json格式,和接口要求匹配 response = requests.request("PUT", url, headers=headers, params=payload, json=dat) print(response.status_code)
补充排查点
如果修改后仍然报错,可优先检查两点:
- 你的访问令牌是否已经申请
user-modify-playback-state权限,这是调用播放控制接口的必填权限。 - 传入的
device_id是否为当前登录账号下可用的活跃设备ID。
内容的提问来源于stack exchange,提问作者Tyler
相关产品推荐
相关产品推荐

