Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试将行移动到其他工作表时Nodejs Smartsheet API错误_Javascript_Node.js_Smartsheet Api_Smartsheet Api 2.0 - Fatal编程技术网

Javascript 尝试将行移动到其他工作表时Nodejs Smartsheet API错误

Javascript 尝试将行移动到其他工作表时Nodejs Smartsheet API错误,javascript,node.js,smartsheet-api,smartsheet-api-2.0,Javascript,Node.js,Smartsheet Api,Smartsheet Api 2.0,我一直致力于基于smartsheet的简单生产管理流程。我一直在运行的代码在我的Ubuntu机器上运行良好,然后我将其复制到运行相同节点版本的Parrot Linux机器上,它将找不到存在的行。请求如下: var copyRow = { "rowIds": artToProdRowsToCopy, "to": { "sheetId": productionId } }; // Set opt

我一直致力于基于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' }
我正在ParrotLinux3.9上运行NodeV8.9.1

我已经检查了这些表和行ID#中的每一个都是正确的,它们都是正确的(但是示例中的那些不是真实的)。任何帮助都将不胜感激

编辑:添加调试信息:

[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

我认为您的请求结构没有任何明显的问题。通常,404notfound错误与请求URI的问题有关,而不是与请求本身的内容有关。i、 例如,404notfound错误意味着,由于某种原因,无法访问请求URI

复制行请求的URI为:

POST/sheets/{sheetId}/rows/copy

一些故障排除建议:

  • 验证请求URI中所有字符的大小写是否为小写

  • 验证与请求URI中的
    sheetId
    值对应的工作表是否存在

  • 验证拥有您在复制行
    Authorization
    标题中指定的API访问令牌的用户确实可以访问与请求URI中的
    sheetId
    值对应的工作表

正如API文档部分所述,我建议您使用Fiddler或Charles HTTP Proxy之类的工具来检查应用程序正在发送的原始HTTP请求,然后您可以调查/验证上面列出的项目

更新#1

感谢您用调试信息更新您的帖子。基于此,您的请求URI似乎在单词
复制
之间包含一个额外的斜杠:

POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows//copy?include=all
也许这就是你的问题所在

更新#2

如果我的请求URI在单词
复制
之间包含两个斜杠,我就能够在Postman中重现未找到错误(如调试输出所示)。删除其中一个斜杠可以修复此问题。也就是说,您的请求应该是这样的(单词
复制
之间只有一个斜杠)


看起来像是我们的SDK错误。请继续关注修复。

在版本1.0.3中修复-现在在Github和npm上


我刚刚添加了调试的内容。正在将节点添加到除自签名Charles证书之外的其他位置。如果我找到更多信息,我会告诉你。我已根据您添加到帖子中的调试输出更新了我的答案以包含更多信息。在我的答案中添加了“Update#2”以提供更多信息。如果这解决了您的问题,请将此答案标记为“已接受”,以便其他人将来可以受益于此信息。谢谢只是做了标记。很抱歉耽搁了,谢谢你的帮助。谢谢!谢谢你的快速修复!
POST https://api.smartsheet.com/2.0/sheets/8129017124546436/rows/copy?include=all