POST запрос к API WB ошибка 401

Пробую сделать POST запрос к WB на получения отчета.

var options = {
      method: 'post',
      contentType: 'application/json',
      'muteHttpExceptions': true,
      headers: {
          'Authorization': 'Basic ' + Utilities.base64Encode(apiKey)
      },
      payload: JSON.stringify({
          'period': {
            'begin': yesterday+' 00:00:01',
            'end':yesterday+' 23:59:59'
          },
          'page': 1
      })
 try {
    var response = UrlFetchApp.fetch(apiUrl, options);
    Logger.log('response: ' + response);
  } catch (error) {
    Logger.log('Ошибка при выполнении запроса: ' + error);
  }

Получаю такой ответ:

response: {
    "title": "unauthorized",
    "detail": "token problem; token is malformed: token contains an invalid number of segments",
    "code": "167251cb759b-cc73ad3617b9d5c82732 84bd353bf-75 82f3f335ddde6c815fe840d4ee415696",
    "requestId": "82f3f335ddde6c815fe840d4ee415696",
    "origin": "s2sauth-ca",
    "status": 401,
    "statusText": "Unauthorized",
    "timestamp": "2024-10-16T15:33:03Z"
}

На python3 c этим же ключом всё работает работает без проблем и я получаю данные через POST. Так же я могу получать отчеты по этому ключу через GET запросы.

Из описания API

Авторизация Добавляйте токен в заголовок запроса Authorization

Header parameter name: Authorization

Документация по API

Может кто-то подсказать что я не так делаю?


Ответы (1 шт):

Автор решения: Prianichkin Sergey

Токен авторизации нужно передавать в исходном виде. Например, вот так:

headers: {
  Authorization: API_TOKEN,
  accept: 'application/json',
  contentType: 'application/json; charset=utf-8'
}
→ Ссылка