使用Python调用Mojang API获取Minecraft皮肤URL失败求助
如何通过Mojang API获取Minecraft皮肤URL?
你的代码已经成功解码了Mojang返回的profile属性数据,但缺少从解码后的JSON中提取皮肤URL的关键步骤。以下是修正后的完整实现:
修正后的代码
import json import requests import base64 # 玩家UUID(替换为你要查询的无短横线格式UUID) player_uuid = "11f1cc006cc84499a174bc9b7fa1982a" try: # 请求Mojang会话服务器获取玩家profile response = requests.get(f"https://sessionserver.mojang.com/session/minecraft/profile/{player_uuid}") response.raise_for_status() # 捕获HTTP请求错误 # 提取base64编码的纹理属性数据 profile_data = response.json() encoded_textures = profile_data["properties"][0]["value"] # 解码base64数据并解析为JSON对象 decoded_bytes = base64.b64decode(encoded_textures) textures_data = json.loads(decoded_bytes.decode('utf-8')) # 提取皮肤资源URL skin_url = textures_data["textures"]["SKIN"]["url"] print("皮肤URL:", skin_url) except requests.exceptions.RequestException as e: print(f"请求出错: {e}") except KeyError as e: print(f"数据解析出错,缺失字段: {e}")
关键改进说明
- 异常处理:新增HTTP请求错误和JSON字段缺失的捕获逻辑,避免程序直接崩溃
- 明确数据解析:将解码后的字符串转为JSON对象,方便精准提取皮肤字段
- 直接获取皮肤URL:从
textures.SKIN.url路径中提取最终的皮肤资源地址
注意事项
- 必须使用无短横线格式的UUID,Mojang会话服务器仅支持这种格式的UUID查询
- 如果玩家未设置皮肤,
textures.SKIN字段可能不存在,建议额外添加该字段的存在性判断
内容的提问来源于stack exchange,提问作者aroaMinecraft
相关产品推荐
相关产品推荐

