You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用API请求获取用户专辑时user token应放置在request.get的哪个位置

你当前代码中使用的jwtToken是Apple Music开发者令牌,仅用于标识开发者身份,调用/v1/me/开头的个人资源接口时,还需要额外传入音乐用户令牌,该令牌是用户授权你的应用访问Apple Music库后获得的凭证。

令牌放置位置

你需要将用户令牌添加到request.get配置的headers字段中,字段名为Music-User-Token,修改后的代码如下:

"use strict";

const fs = require("fs");
const jwt = require("jsonwebtoken");
const request = require("request");

const privateKey = fs.readFileSync("AuthKey.p8").toString();
// 生成开发者令牌,注意issuer要填你的开发者团队ID,kid填AuthKey对应的密钥ID
const jwtToken = jwt.sign({}, privateKey, { 
  algorithm: "ES256", 
  expiresIn: "180d", 
  issuer: "你的团队ID", 
  header: { alg: "ES256", kid: "你的密钥ID" } 
});

console.log("开发者token:", jwtToken, "\n");
// 此处替换为你实际从客户端获取到的用户授权令牌
const userToken = "用户授权后得到的音乐用户令牌";

const url = "https://api.music.apple.com/v1/me/library/albums";

request.get( 
  { 
    url: url, 
    auth: { bearer: jwtToken }, 
    // 新增headers配置传递用户令牌
    headers: { "Music-User-Token": userToken },
    json: true 
  }, 
  (err, httpResponse, body) => { 
    if (err) { 
      console.error(err); 
    } else { 
      console.log(body.results.albums.data); 
    } 
  } 
);

注意事项

  • 音乐用户令牌无法在服务端自行生成,需要在苹果端应用内使用SKCloudServiceController相关API向用户申请授权后获取
  • 生成开发者令牌时必须正确填充issuer(开发者团队ID)和header.kid(p8密钥对应的ID),否则会触发401鉴权错误
  • 开发者令牌最长有效期为180天,到期需要重新生成

内容的提问来源于stack exchange,提问作者emw2006

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 16:39:02