Nodejs Smartsheet API Ошибка при попытке переместить строку на другой лист

Я работал над простым процессом управления производством, основанным на smartsheet. Код, который я выполнял, работал нормально на моей машине с Ubuntu, затем я скопировал его на мою машину Parrot Linux, работающую с той же версией узла, и он не найдет существующую строку. Ниже просьба:

      var copyRow = {
        "rowIds": artToProdRowsToCopy,
        "to": {
          "sheetId": productionId
        }
      };

      // Set options
      var options = {
        sheetId: artId,
        body: copyRow,
        queryParameters: {
          include: "all"
        }
      };
      console.log(options);
      // Copy the normal engraved rows from art to production
      smartsheet.sheets.copyRowToAnotherSheet(options)
        .then(function(results) {
          callback1(null, results);
        })
        .catch(function(error) {
          console.log(error);
        });

Выход журнала опций:

{ sheetId: 8129017524546436,
  body: 
   { rowIds: [ 8886954296800644 ],
      to: { sheetId: 6941481487333252 } },
   queryParameters: { include: 'all' } }

Ошибка:

{ statusCode: 404,
  errorCode: 1006,
  message: 'Not Found',
  refId: 'zjl2z56296l9' }

Я использую узел v8.9.1, в Parrot Linux 3.9.

Я проверил, что каждый из этих номеров листов и строк верен, и все они (однако, в примерах не являются реальными). Любая помощь будет оценена.

Изменить: Добавление отладочной информации:

[Smartsheet] 2017-11-20T20:22:55.876Z[   INFO] POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows//copy?include=all
[Smartsheet] 2017-11-20T20:22:55.876Z[VERBOSE] Request Payload (preview): {"rowIds":[2759271070885764,3212501789763460,4576920289470340,8982631438149508,2962733838690180,8886959296800644],"to":{"sheetId":6941441487333252}}
[Smartsheet] 2017-11-20T20:22:55.876Z[  DEBUG] Request Payload (full): {"rowIds":[2759271070885764,3212501789763460,4576920289470340,8982631438149508,2962733838690180,8886959296800644],"to":{"sheetId":6941441487333252}}
[Smartsheet] 2017-11-20T20:22:56.155Z[  ERROR] Request failed after 0 retries
[Smartsheet] 2017-11-20T20:22:56.156Z[  ERROR] POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows//copy?include=all
[Smartsheet] 2017-11-20T20:22:56.156Z[  ERROR] Response: Failure (HTTP 404)
Error Code: 1006 - Not Found
Ref ID: 85bn0m2j8oki

3 ответа

Решение

Я не вижу каких-либо очевидных проблем с вашей структурой запроса. Обычно ошибка 404 Not Found связана с проблемой с URI запроса, а не с содержимым самого запроса. ошибка 404 Not Found означает, что по тем или иным причинам URI запроса недоступен.

URI для запроса копирования строк:

POST /sheets/{sheetId}/rows/copy

Несколько предложений по устранению неполадок:

  • Убедитесь, что регистр всех символов в URI запроса строчные.

  • Убедитесь, что лист, соответствующий sheetId значение в URI запроса существует.

  • Убедитесь, что пользователь, которому принадлежит токен доступа API, указанный вами в Authorization заголовок запроса API Copy Row действительно имеет доступ к листу, соответствующему sheetId значение в URI запроса.

Как описано в разделе " Устранение неполадок " в документации по API, я бы предложил вам использовать такой инструмент, как Fiddler или Charles HTTP Proxy, чтобы проверить необработанный HTTP-запрос, отправляемый вашим приложением, затем вы можете исследовать / проверить элементы, которые я перечислил выше.

Обновление № 1

Спасибо за обновление вашего сообщения отладочной информацией. Исходя из этого, похоже, что ваш запрос URI содержит дополнительную косую черту между словами rows а также copy:

POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows//copy?include=all

Возможно, это вызывает вашу проблему?

Обновление № 2

Я смог воспроизвести ошибку Not Found в Postman, если мой URI запроса содержит две косые черты между словами rows а также copy(как показывает ваш отладочный вывод). Удаление одного из этих слэшей устраняет проблему. То есть ваш запрос должен выглядеть так (только одна косая черта между словами rows а также copy).

POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows/copy?include=all

Похоже, наша ошибка SDK. Оставайтесь с нами для исправления.

Другие вопросы по тегам