使用API密钥调用Riot Games API遇401错误,Python请求代码排查求助
解决Riot Games API 401未授权问题
你的代码存在两个关键问题导致401错误,以下是具体排查和修复方案:
1. 授权头部字段错误
Riot Games API不采用Authorization: Bearer {API_KEY}的授权格式,正确的头部字段是X-Riot-Token,直接将API密钥作为该字段的值即可。错误的头部格式会被服务器判定为未授权。
2. 请求URL无效
你使用的https://americas.api.riotgames.com/riot不是一个有效的API端点,Riot的所有API请求都需要指定具体的功能路径(比如获取召唤师信息、比赛记录等)。直接请求根路径会触发错误,即使授权正确也无法正常响应。
修改后的代码示例
import os import requests API_KEY = os.getenv("riot-key") # 替换为你实际需要调用的有效API端点,这里以查询召唤师账号信息为例 URL = "https://americas.api.riotgames.com/riot/account/v1/accounts/by-riot-id/你的游戏昵称/你的标签" headers = { "X-Riot-Token": API_KEY # 使用正确的授权头部字段 } response = requests.get(URL, headers=headers) if response.status_code == 200: print(response.json()) else: print("请求失败,状态码:", response.status_code) print("错误详情:", response.text) # 打印响应文本,便于获取服务器返回的具体错误信息
额外排查建议
- 验证API密钥加载是否正常:在代码中添加
print(API_KEY),确认环境变量riot-key正确加载了密钥,没有为空或出现拼写错误。 - 检查密钥权限:部分API密钥可能限制了区域或功能范围,确保你的密钥有权访问目标端点。
- 查看服务器返回的错误文本:通过
response.text可以获取Riot服务器给出的具体错误提示(比如密钥过期、端点不存在等),进一步定位问题。
内容的提问来源于stack exchange,提问作者oolio
相关产品推荐
相关产品推荐

