@jesuswhyy
Мимо проходил

Как исправить ошибку code 400?

Пытаюсь настроить автоматическую выгрузку отчетов из кабинета продавца Озон в гугл таблицу. Ниже код:

function transaction() {
  let options = {
    method: "POST",
    headers:  {
      'Client-Id':'000',
      'API-key':'111',          
      'accept': 'application/json'
    },
    "filter": {
        "date": {
            "from": "2023-10-01T00:00:00.000Z",
            "to": "2023-10-31T00:00:00.000Z"
        },
        "operation_type": [],
        "posting_number": "",
        "transaction_type": "all"
    },
    "page": 1,
    "page_size": 1000
}

  let response = UrlFetchApp.fetch("https://api-seller.ozon.ru/v3/finance/transaction/list", options);
  
  
  if (response.getResponseCode() == 200) {
    let data = JSON.parse(response.getContentText());
    
    let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('отчеты');
    for (let i = 0; i < data.transactions.length; i++) {
      sheet.getRange(i+1, 1).setValue(data.transactions[i].id);
      sheet.getRange(i+1, 2).setValue(data.transactions[i].amount);
    }
    
    Logger.log('Данные успешно записаны в Google таблицу');
  } else {
    Logger.log('Ошибка при отправке запроса к API Ozon Seller: ' + response.getResponseCode());
    Logger.log('Текст ответа: ' + response.getContentText());
  }

}

При запуске выдает ошибку:

Exception: Request failed for https://api-seller.ozon.ru returned code 400. Truncated server response: {"code":3,"message":"Request validation error: invalid FinanceTransactionListV3Request.Filter: value is required","details":[]} (use muteHttpExceptions option to examine full response)
transaction	@ Без названия 2.gs:22

Почему здесь возникает ошибка ошибка?
Документация этого метода Ozon API.
  • Вопрос задан
  • 401 просмотр
Пригласить эксперта
Ответы на вопрос 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
Тело запроса надо передавать в payload:
let options = {
    method: "POST",
    headers:  {
      'Client-Id':'000',
      'API-key':'111',          
      'accept': 'application/json',
    },
    payload: {
      "filter": {
          "date": {
              "from": "2023-10-01T00:00:00.000Z",
              "to": "2023-10-31T00:00:00.000Z",
          },
          "operation_type": [],
          "posting_number": "",
          "transaction_type": "all",
      },
      "page": 1,
      "page_size": 1000,
    },
};
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы