无法使用 "级别 "查询读取对象值数据。

问题描述 投票:0回答:2

根据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' }
javascript node.js smartsheet-api
2个回答
0
投票

我已经验证了(使用 邮递员)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功能来提供它)。


0
投票

你只需要从你的应用程序中删除数组符号。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])
            })
© www.soinside.com 2019 - 2024. All rights reserved.