我需要使用Smartsheet API 2.0(最好是Python SDK)获取工作表的最后修改的时间戳属性。 参考:
使用Sheets.list_sheets
,我可以为我有权访问的所有工作表获取'modifiedAt'属性(以及其他属性)。
使用Sheets.get_sheet(sheet_id
)获得指定工作表的所有数据(行,列)。
如何为具有已知工作表ID的特定工作表仅获取' modifiedAt ”(如果还存在其他一些小属性,则可以)。我不希望在API响应中显示行,列,单元格信息。
答案 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)