使用Smartsheet API 2.0如何仅获取特定工作表的“ modifiedAt”属性

时间:2018-07-23 08:32:07

标签: smartsheet-api

我需要使用Smartsheet API 2.0(最好是Python SDK)获取工作表的最后修改的时间戳属性。 参考:

使用Sheets.list_sheets,我可以为我有权访问的所有工作表获取'modifiedAt'属性(以及其他属性)。

使用Sheets.get_sheet(sheet_id)获得指定工作表的所有数据(行,列)。

如何为具有已知工作表ID的特定工作表仅获取' modifiedAt ”(如果还存在其他一些小属性,则可以)。我不希望在API响应中显示行,列,单元格信息。

2 个答案:

答案 0 :(得分:0)

“获取工作表”调用将始终返回特定工作表的内容(行,列,数据)。尽管有一个“排除”查询参数可以过滤掉某些属性,但是它不适用于从/sheets/{sheetId}端点返回的原始工作表数据。

如果只需要ModifyAt属性,则Sheets.list_sheets调用似乎更简单。我会用那个然后遍历结果,直到找到匹配的ID。

答案 1 :(得分:0)

我写信给Smartsheet支持团队,他们的回答达到了我的目的。

  

感谢您与Smartsheet支持联系。为了缩小范围   您得到的响应,可以使用exclude参数:   http://smartsheet-platform.github.io/api-docs/#query-strings。在我的   测试中,我排除了columnIds = 0和   rowIds = 0。剩下的只是工作表信息,其中包括   工作表的modifiedAt。您也许可以进一步限制它,但是   我从中得到的结果非常简短而甜美。

(Python SDK示例)

response = ss_client.Sheets.get_sheet(MY_SHEET_ID, column_ids='0', row_ids = '0')

使用上述参数,我能够排除所有工作表数据,并且仅获得元数据(其中包括Modifyed属性)。

基本上,我的意图是定期运行同步脚本并将Smartsheet数据存储到本地数据库中。如果自上次执行以来未发生任何变化,我希望API响应跳过实际的工作表数据(行,列,单元格)。实现此目标的另一种好方法是使用ifVersionAfter参数。

  

ifVersionAfter(可选):如果指定的版本仍然是当前版本   工作表版本,然后返回仅包含   工作表版本属性。否则,如果工作表已被修改,   返回完整的Sheet对象。旨在允许客户   缓存副本以确保它们具有最新版本。

last_version_fetched = 7724
response = ss_client.Sheets.get_sheet(MY_SHEET_ID, if_version_after=last_version_fetched)