代码之家  ›  专栏  ›  技术社区  ›  Raunak

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

  •  0
  • Raunak  · 技术社区  · 6 年前

    我需要使用smartsheet api 2.0(最好是python sdk)获取工作表的最后修改的timestamp属性。 裁判:

    使用 Sheets.list_sheets 我可以为我可以访问的所有工作表获取“modifidat”属性(以及其他属性)。

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

    我怎么才能得到 修改日期 '对于具有已知工作表ID的特定工作表(如果还存在其他一些小属性,则可以)。我不希望行、列、单元格信息出现在API响应中。

    2 回复  |  直到 6 年前
        1
  •  0
  •   Taylor Krusen    6 年前

    Get Sheet调用将始终返回特定工作表中的内容(行、列、数据)虽然有一个“exclude”查询参数可以筛选出某些属性,但它对从 /sheets/{sheetId} 终点。

    这个 Sheets.list_sheets 如果您只需要modifiedat属性,则调用似乎是更简单的路由。我将使用这个方法,然后遍历结果,直到找到匹配的id。

        2
  •  0
  •   Raunak    6 年前

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

    感谢与Smartsheet支持部门联系为了缩小 得到的响应,可以使用exclude参数: http://smartsheet-platform.github.io/api-docs/#query-strings . 在我的 测试时,我排除了columnIds=0和 rowids=0。只留下了我的资料,包括 工作表的修改日期你也许可以进一步限制,但是 我从中得到的结果是非常短暂和甜蜜的。

    (Python SDK示例)

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

    使用上面的参数,我可以排除所有的工作表数据,只得到元数据(包括modifidat属性)。

    基本上,我的目的是定期运行一个同步脚本,并将SmartSheet数据存储到本地数据库中。我希望API响应跳过实际的工作表数据(行、列、单元格),如果自上次执行以来没有任何更改的话使用ifVersionAfter参数是实现这一点的另一个很好的方法。

    ifversionafter(可选):如果指定的版本仍然是当前版本 sheet version,然后返回一个缩写的sheet对象,其中只有 工作表版本属性。否则,如果工作表已被修改, 返回完整的工作表对象旨在允许客户 缓存副本以确保它们具有最新版本。

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