Сценарий приложения - UrlFetchApp.fetch {url, метод: "GET"} для gzip не удается с кодом 406 - PullRequest
0 голосов
/ 07 марта 2020

Я здесь на месячном квесте. Любая помощь приветствуется!

Я пытаюсь подключиться через API в App Store Connect, используя UrlFetchApp.fetch (). После борьбы в пустыне за создание правильного JWT для аутентификации на GAS я теперь сталкиваюсь с хар sh реальностью: ответ сервера (тип контента и кодировка контента) не JSON, а GZIP.

Код 406: «Ответ усеченного сервера: указанный заголовок Accept не поддерживается для этого запроса. Запрошено: application / json Разрешено: application / a-gzip»

Есть ли способ получить доступ? в файл?

Вот часть кода, выполняющая только вызов (код подписи JWT для аутентификации указан выше -> "sJWT")

var url = "https://api.appstoreconnect.apple.com/v1/financeReports?filter[regionCode]=ZZ&filter[reportDate]=2019-11&filter[reportType]=FINANCIAL&filter[vendorNumber]=xxx"

var response = UrlFetchApp.fetch(url, { method : "GET", headers : { "Authorization" : "Bearer "+sJWT }});

Большое спасибо!

1 Ответ

0 голосов
/ 07 марта 2020

Как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Точки модификации:

  • Когда я увидел официальный документ , требуется использовать application/a-gzip для Accept в заголовках запроса.
  • А также, в этом случае, ответ возвращает содержимое gzip. Поэтому необходимо распаковать содержимое.

Когда вышеупомянутые точки отражены в вашем скрипте, как насчет следующей модификации?

Модифицированный скрипт:

var url = "https://api.appstoreconnect.apple.com/v1/financeReports?filter[regionCode]=ZZ&filter[reportDate]=2019-11&filter[reportType]=FINANCIAL&filter[vendorNumber]=xxx"
var response = UrlFetchApp.fetch(url, {
  method: "GET",
  headers: {
    "Authorization": "Bearer " + sJWT,
    "Accept": "application/a-gzip"  // Added
  }
});
var res = Utilities.ungzip(response.getBlob());  // Added

Примечание:

  • Над измененным сценарием предполагается, что значения вашего URL и sJWT являются правильными для использования API.

Ссылки:

К сожалению, я не могу протестировать приведенный выше скрипт. Я прошу прощения за это. Поэтому, если вышеупомянутый измененный скрипт не решил вашу проблему, я прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...