Невозможно прочитать данные objectValue с помощью запроса «level» - PullRequest
0 голосов
/ 04 мая 2020

Согласно документам API smartsheet, я должен иметь возможность использовать параметр "level" в моих настройках, чтобы получить сложный объект для столбцов Multi-Contact. К сожалению, все, что я получаю взамен, это value и displayValue.

Я что-то здесь не так делаю?

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' }

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Вам просто нужно удалить обозначения массива из определения 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])
            })
0 голосов
/ 04 мая 2020

Я проверил (используя Почтальон ), что Smartsheet API действительно поддерживает описанный вами сценарий. т. е. если я отправлю запрос Get Sheet :

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": "john_doe@test.com",
                                "name": "John Doe"
                            },
                            {
                                "objectType": "CONTACT",
                                "email": "jane_doe@test.com",
                                "name": "Jane Doe"
                            }
                        ]
                    },
                    "displayValue": "John Doe, Jane Doe"
                },
                ...
            ]
        },
        ...
    ]
}

Однако, похоже, что Smartsheet JavaScript SDK еще не поддерживает этот сценарий.

Нередко обновления SDK отстают от выпуска новых функций API. Возможно, вы захотите зарегистрировать проблему в репо JavaScript SDK , чтобы попросить добавить поддержку этого сценария или, что еще лучше, отправить PR в этот репозиторий, который добавляет поддержку этого сценария. В то же время вам необходимо реализовать эту функцию самостоятельно в рамках своей интеграции (т. Е. Поскольку вы не можете полагаться на готовую функциональность SDK для ее предоставления в настоящее время).

...