根据smartsheet API Docs,我应该能够在我的选项中使用 "level "参数来为Multi-Contact列获取一个复杂的对象。
我是不是做错了什么?
var options = {
id: SHEET_ID, //Id of sheet
queryParameters = {
include: ["objectValue"],
level: 1
}
}
ss.sheets.getSheet(options)
.then(function (results) {
console.log(results.rows[args[0]].cells[6])
})
上述代码返回。
{ columnId: 8746190272522116, displayValue: 'John Smith, Danny Doe' }
我已经验证了(使用 邮递员)Smartsheet API确实支持你所描述的情况。即,如果我提交这个 获取表 请求。
https://api.smartsheet.com/2.0/sheets/5831916227192708?include=objectValue&level=1
...然后响应确实包含了复杂的对象 在我的工作表中的一个多触点单元格。
{
"id": 5831916227192708,
...
"rows": [
{
"id": 5942480978372484,
...
"cells": [
{
"columnId": 3992195570132868,
"objectValue": {
"objectType": "MULTI_CONTACT",
"values": [
{
"objectType": "CONTACT",
"email": "[email protected]",
"name": "John Doe"
},
{
"objectType": "CONTACT",
"email": "[email protected]",
"name": "Jane Doe"
}
]
},
"displayValue": "John Doe, Jane Doe"
},
...
]
},
...
]
}
然而,它看起来像 Smartsheet JavaScript SDK 还不支持这种情况。
SDK更新比新的API功能发布滞后一点是很正常的。你可以考虑在 JavaScript SDK repo 来请求添加对这一场景的支持--或者更好的是,提交一个PR到该repo,添加对这一场景的支持。同时,你需要在你的集成中自己实现这个功能(也就是说,因为你现在不能依靠开箱即用的SDK功能来提供它)。
你只需要从你的应用程序中删除数组符号。options
定义:
var options = {
id: SHEET_ID, //Id of sheet
queryParameters = {
include: "objectValue",
level: 1
}
}
ss.sheets.getSheet(options)
.then(function (results) {
console.log(results.rows[args[0]].cells[6])
})