理解Smartsheet API中的多联系人和多拾取列表列

发表在2019年10月14日

Smartsheet喜欢两者兼得:重要的是要防止实现中断(即向后兼容),但总是有新的和更有趣的特性,如多联系人和多选择列表列(有时称为多下拉列表列)。那么Smartsheet API是如何满足这两个标准的呢?

在游戏语言中,当你达到一定级别时便会出现新的功能:第14级让你能够获得一个新的角色,或在第31级时你可以使用菠萝作为火箭筒的弹药。玩家说他们正在“升级”。

在同样的意义上,新的Smartsheet UI功能,如多联系人或多选择列表使用水平查询参数作为旧方法和新功能之间的区别。当你不用的时候水平查询参数时,这些列类型的值将作为字符串返回(因为列类型被转换为TEXT_NUMBER).

例如:向后兼容的多拾取列表

在下面这组JSON响应片段中,工作表有一个多选择列表列,单元格有两个值:May和August。

与一个获得/床单/ {id}请求且没有查询参数,Columns对象的相关部分如下所示:

{“标题”:“Column5”,“类型”:“TEXT_NUMBER”,“确认”:假的,},

Cells对象的相关部分将两个cell值合并为一个字符串:

{"columnId": 8447963757340548, "value": "May, August", "displayValue": "May, August"},

您可能还注意到,这里同时有一个“value”和一个“displayValue”参数。(提示:您真正希望的是“objectValue”参数,但它还没有在这里。objectValue参数更加健壮,能够在数组中显示多个值。我建议使用包括= objectValue参数,如果您想要最完整的信息。)

示例:具有新功能的多选择列表

通过使用水平参数来告诉Smartsheet API服务器您已经升级,您可以通过列类型的MULTI_PICKLIST.不要忘记包含objectValue!

下面是Node.js中的一个例子:

//指定查询参数var参数个数包括“objectValue”水平“2”/ /设置选项var选项id5913695999955124queryParameters参数个数//获取多个选择列表信息smartsheet_clientgetSheet选项然后函数sheetInfo控制台日志sheetInfo函数错误控制台日志错误

在这种情况下,Columns对象的JSON响应的相关部分现在看起来如下所示:

{title: 'example multi picklist column',类型:“MULTI_PICKLIST”,options: [Array], validate: true,},

Cells对象的JSON响应的相关部分如下所示:

{“columnId”:8447963757340548,"objectValue": {"objectType": "MULTI_PICKLIST", "values": ["May", "August"]},"displayValue": "May, August"},

多触点呢?

多重接触的工作原理与此大致相同。Smartsheet首先开发了多点接触,所以级别较低。的两个查询参数水平而且包括= objectValue

什么级别对应哪个请求?

让我们回到电子游戏的类比中。多联络人首先出现,所以等级查询的数值较低。仪表板、报告和工作表之间略有不同,但下表将帮助您跟踪哪个级别对应哪个内容。

最近,Smartsheet宣布了多选择列表列,所以它们将是下一个层次。你需要再次升级。

多触点 Multi-picklist
仪表板(又名景点) 2 3.
报告 1 3.
1 2

如果你想要一个工作表的多联系人和多拾取列表信息,使用" level=2 ",对于报告,使用" level=3 ",以此类推。

使用更高的级别

就像在游戏中,当你升级后,你不需要返回一个关卡去使用前一个关卡的东西——它们都会随你一起移动。因此,为了确保总是在响应中获得多联系人和多拾取列表数据,请在get请求中使用最高级别的查询参数。

当我第一次介绍升级这个比喻时,我不知道你想到的是什么电子游戏,但我打算用我的新火箭发射器向外星人射击菠萝!或者,您知道,在对GET查询的响应中看到实际的电子邮件地址。

评论

评论