调用Minecraft名称可用性API时出现401错误求助
解决Minecraft名称可用性API的401未授权错误
401错误的核心原因是你调用的这个API要求携带有效的Mojang认证令牌,你的代码里缺少了认证请求头,服务器因此拒绝了未授权的访问。
解决步骤:
获取Mojang Access Token
该API属于Minecraft官方服务接口,必须通过微软账号OAuth2授权流程获取access token。流程大致为:引导用户登录微软账号,获取授权码,再通过授权码兑换成access token。注意不能硬编码或非法获取用户令牌,必须遵循官方授权规范。修改代码添加认证头
在请求中添加Authorization头,格式为Bearer {你的access token},修改后的代码如下:
def check_username(): username = username_entry.get().strip() url = f"https://api.minecraftservices.com/minecraft/profile/name/{username}/available" # 替换为用户通过合法流程获取的access token access_token = "USER_VALID_ACCESS_TOKEN" headers = { "Authorization": f"Bearer {access_token}" } response = requests.get(url, headers=headers) if response.status_code == 200: messagebox.showwarning("Username Taken", f"Sorry, the username '{username}' is taken!") elif response.status_code == 204: messagebox.showinfo("Username Available", f"The username '{username}' is available!") else: messagebox.showerror("Error", f"Error checking username '{username}': {response.status_code}")
额外注意事项:
- Access Token有有效期,若后续再次收到401错误,需要重新获取令牌。
- 确保所有操作符合Mojang服务条款,不要存储或滥用用户的认证信息。
内容的提问来源于stack exchange,提问作者Jesus
相关产品推荐
相关产品推荐

