使用 API 检索 Apple Music Storefront ID 的问题

问题描述 投票:0回答:0

我在使用 API 检索我的 Apple Music 帐户的店面 ID 时遇到问题。我正在使用以下代码向 /me/storefront 端点发出 GET 请求:

func getStoreFrontID(userToken: String) {
    let url = URL(string: "https://api.music.apple.com/v1/me/storefront")!
    var request = URLRequest(url: url)
    request.httpMethod = "GET"
    request.addValue("Bearer \(userToken)", forHTTPHeaderField: "Authorization")
    
    let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
        if let error = error {
            print("Error: \(error.localizedDescription)")
            return
        }
        
        guard let httpResponse = response as? HTTPURLResponse,
              (200...299).contains(httpResponse.statusCode) else {
            print("Error: Invalid HTTP response")
            if let data = data,
               let errorMessage = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any],
               let message = errorMessage["errorMessage"] as? String {
                print("Error message: \(message)")
            } else {
                print("HTTP response: \(response.debugDescription)")
            }
            return
        }
        
        guard let data = data else {
            print("Error: No data received")
            return
        }
        
        do {
            let json = try JSONSerialization.jsonObject(with: data, options: [])
            if let dictionary = json as? [String: Any],
               let storefrontID = dictionary["defaultStorefront"] as? String {
                print("Store Front ID!: \(storefrontID)")
            }
        } catch {
            print("Error: \(error.localizedDescription)")
        }
    }
    
    task.resume()
}

我收到的响应是 403 错误代码和以下消息:

无效的 HTTP 响应 HTTP 响应:可选( { URL:https://api.music.apple.com/v1/me/storefront } { 状态代码:403,标题 {...})

我不确定是什么导致了这个问题,因为我已经确认我的用户令牌有效并且已获得 Apple Music 授权。我是否需要执行任何其他步骤才能检索店面 ID?任何帮助将不胜感激。

谢谢。

我尝试的主要事情之一是使用 getStoreFrontID 函数获取店面 ID,该函数使用有效的用户令牌向 Apple Music API 发出请求,如果成功则返回店面 ID。我期待收到一个有效的 Storefront ID,我可以使用它向 Apple Music API 中的其他端点发出请求。但是,我遇到了一个问题,即 API 返回一个带有 403 状态码的错误响应,表明请求未被授权。我还尝试检查用户令牌是否与 Apple Music 订阅相关联,我收到了一个表明它已获得授权的响应。我还编写了函数来检查 Apple Music 访问是否已获得授权,并且已收到表明访问已获得授权的响应。我目前正在探索解决此问题并成功检索店面 ID 的不同方法。

swift storekit
© www.soinside.com 2019 - 2024. All rights reserved.