0

早上好,我正在寻找一种方法来更新我的 Smartsheet 列中的下拉值。离开 Smartsheet API 2.0,我设法想出了以下与 curl 一起使用的代码,但是在 CMD 中运行它时出现以下错误。

这是我正在使用的代码:

curl https://api.smartsheet.com/2.0/sheets/7654838910642052/columns/4 -H "Authorization: Bearer 6cn0otb4tdjueqzuflgnkzff17" -X PUT -d '{"title":"Weekend Date","index":4, "type" : "PICKLIST", "options" :["31-OCT-2015"]}' -k

我从 CMD 得到的错误信息如下:

C:\New>curl https://api.smartsheet.com/2.0/sheets/7654838910642052/columns/4 -H "Authorization: Bearer 5cn0otb4tdjueqzuflgnkzff17" -X PUT -d '{"title"
:"Weekend Date","index":4, "type" : "PICKLIST", "options" :["31-OCT-2015"]}' -k
{"errorCode":1124,"message":"Invalid Content-Type header. Media type not supported."}curl: (6) Could not resolve host: type; Host not found
¶hA▓╔ôÒ±$═»ù0♠~¡lk§☺▄ÜQ­K¡^ Õf ƒîa♀ÛæçÂ"õ8Ê╝±↕åÊJcurl: (6) Could not resolve host: PICKLIST,; Host not found
curl: (6) Could not resolve host: options; Host not found
curl: (3) [globbing] error: bad range specification after pos 3

将不胜感激我能得到的任何帮助!!!这个错误真的很烦人,我花了好几个小时试图修复它。

** 请注意,出于安全原因,我已更改访问令牌,但我使用的令牌绝对有效 **

4

2 回答 2

0

看起来您使用的路径可能不正确。我可以看到列 ID 应该在的路径中包含一个“4”。要更新列,您将使用以下路径:

卷曲 https://api.smartsheet.com/2.0/sheets/ {sheetId}/columns/{columnId}

您可以在此处找到 API 参考。

于 2015-10-22T16:14:45.197 回答
0

正如约瑟夫在他的回答中所建议的那样,您肯定要验证您在 URL 中为 {columnId} 指定的值是否有效。但是,您遇到的错误可能与该问题无关。

可能发生的情况是 cURL 会自动为您将 Content-Type 标头设置为值“application/x-www-form-urlcoded”——对于 Smartsheet 的此请求,这不是有效的内容类型。您可以通过简单地在请求中自己设置 Content-Type 标头来解决此错误(即,将 this: 添加-H "Content-Type: application/json"到请求中)。

例如,我更新列的选项列表选项以使唯一选项为“31-OCT-2015”的请求如下所示:

curl https://api.smartsheet.com/2.0/sheets/{sheetId}/columns/{columnId} -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -X PUT -d "{\"type\":\"PICKLIST\", \"options\":[\"31-OCT-2015\"]}" -k

请注意,要更新选项列表选项,我需要在 JSON 中设置的唯一属性是typeoptions。另请注意,我在 JSON 中使用(转义)双引号而不是单引号 - 您可能需要也可能不需要这样做(取决于您的平台)。

于 2015-10-22T17:22:40.200 回答