我使用此代码来获取 App Store Connect 中的所有应用程序:
let jwt = ...
var request = URLRequest(url: URL(string: "https://api.appstoreconnect.apple.com/v1/apps")!)
request.setValue("Bearer \(jwt)", forHTTPHeaderField: "Authorization")
let session = URLSession(configuration: .ephemeral)
let task = session.dataTask(with: request) { data, response, error in
if let error = error {
print(error)
} else if let data = data {
print(String(data: data, encoding: .utf8))
}
}
task.resume()
但响应是错误状态:
400, code: ENTITY_INVALID, title: JSON processing failed
。这个错误指的是哪个实体?什么 JSON 是无效的? JWT 令牌似乎没问题,因为在使用随机值时我收到错误401 NOT_AUTHORIZED
。
根据我在问题中的评论,如果不需要
scope
,则需要从 JWT 的 claim
部分省略它,即代替(例如):
{
"iss": "57246542-96fe-1a63-e053-0824d011072a",
"iat": 1528407600,
"exp": 1528408800,
"aud": "appstoreconnect-v1",
"scope": [
]
}
用途:
{
"iss": "57246542-96fe-1a63-e053-0824d011072a",
"iat": 1528407600,
"exp": 1528408800,
"aud": "appstoreconnect-v1"
}