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
Исправлено в версии 1.0.3 - теперь на Github и npm.
https://www.npmjs.com/package/smartsheet https://github.com/smartsheet-platform/smartsheet-javascript-sdk/releases/tag/v1.0.3