Я хочу скачать отчеты о продажах из AppStore через AppStoreConnect Api.
Вот что у меня есть:
- Я успешно создал токен JWT для аутентификациипротив сервера.
- Мне удалось успешно выполнить запрос к серверу с помощью curl
Пример:
curl https://api.appstoreconnect.apple.com/v1/apps --Header "Authorization: Bearer eyJraWQiOiI3UjlDUUY5ODIzIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiI2OWE2ZGU3Zi00NmY1LTQ3ZTMtZTA1My01YjhjN2MxMWE0ZASDFJleHAiOjE1NzIzOTc4MjAsImF1ZCI6ImFwcHN0b3JlY29ubmVjdC12MSJ9.6A_paF75L_q6jzOLsHItk8FbAo9H1nJpLGkLW15XNHhuGNnxsjFGfFl_9CMBZ7eJovHzVVE4Ig-PasdfEeW1w"
Токен здесь недопустим, он только для демонстрационных целей.
Теперь использование curl - это здорово, но я хотел больше автоматизации, поэтому я хочу сделать это из приложения OSX, я пытаюсь подключиться к серверу с помощью URLSession:
guard let url = URL(string: "https://api.appstoreconnect.apple.com/v1/users") else{
return
}
let token = "eyJraWQiOiI3UjlDUUY5ODIzIiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiI2OWE2ZGU3Zi00NmY1LTQ3ZTMtZTA1My01YjhjN2MxMWE0ZDEiLCJleHAiOjE1NzIzOTc4MjAsImF1ZCI6ImFwcHN0b3JlY29ubmVjdC12MSJ9.6A_paF75L_q6jzOLsHItk8FbAo9H1nJpLGkLW15XNHhuGNnxsjFGfFl_9CMBZ7eJovHzVVE4adfadsfW1w"
var request = URLRequest(url: url, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 10)
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { (optData, optURLResponse, optError) in
}
task.resume()
}
Получив неавторизованный ответ, я обнаружил, что свойство заголовка «Авторизация» не было установлено. Читая документацию URLRequest, похоже, что это свойство зарезервировано и не должно использоваться.
У кого-нибудь есть предложения?