使用StoreKit请求Apple Music用户个人库返回401错误排查
Apple Music API 401错误:Developer Token可生成User Token但失效的情况分析
确实存在你描述的这种情况——developer token能成功获取user token,但调用用户个人库接口时返回401。核心原因集中在以下几点:
1. Developer Token权限范围不匹配
生成developer token时,JWT payload里的scope参数决定了它能访问的API范围。如果你的token没有包含library-read权限,requestUserToken方法依然能返回user token(该方法仅验证token的合法性,不检查权限范围),但实际调用/v1/me/library/artists这类需要访问用户个人库的接口时,会因权限不足触发401错误。
2. Developer Token的签名或核心字段错误
requestUserToken的校验逻辑比Apple Music API服务器宽松:
- 哪怕你的token签名算法不是要求的
ES256,或者iss(团队ID)、iat(签发时间)等字段填写错误,requestUserToken可能依然通过,但API服务器会严格校验这些字段,直接返回401。 - 另外,如果你用了错误的密钥生成token(比如用了APNs密钥而非Apple Music专用密钥),也会出现这种情况。
3. User Token与Developer Token的团队ID不匹配
User token是和生成它的developer token的团队ID绑定的。如果你的应用团队ID和developer token的iss字段不一致,或者调用API时用的developer token和生成user token时的不是同一个,哪怕token本身合法,也会被API拒绝。
排查步骤
- 本地解码你的developer token(用JWT解码工具,避免用在线工具泄露信息),检查:
scope字段是否包含library-readiss是否是你的开发者团队IDalg是否为ES256
- 确认调用
requestUserToken和API请求时用的是同一个developer token - 检查
Authorization头格式:必须是Bearer [完整的developer token],无多余空格或截断 - 验证你的应用Bundle ID已在Apple Developer后台开启Apple Music权限
内容的提问来源于stack exchange,提问作者Maxim
相关产品推荐
相关产品推荐

