我的目标是使用标准cURL调用中的sq参数(API的协议方法)从Google工作表中检索一系列行。 我知道谷歌表格文档通过示例解释了sq
参数。 在该文档示例中,它使用带有比较运算符的列标题名称,但是有没有办法使用 sq 参数检索由开始和结束行索引指定的行范围?
我知道可以使用Google的可视化API来做这样的事情,但是似乎我用于检索数据的Google Sheet的URL需要"重建"以匹配可视化API所需的URL。 我需要提取电子表格"键",然后根据文档重建 URL(滚动到底部)。 作为一名开发人员,我有点厌倦了做任何字符串操作来制定 URL,这样我就可以简单地从 Google 表格中提取一系列行。
检索一系列行而不必求助于基于单元格的 API 源的最佳实践是什么?
编辑:我查看了Google的查询语言参考(0.7版),发现将offset
与limit
一起使用可以使用SQL语句获取一系列行。 但是,当我尝试对这些使用查询时,它不适用于 url 中的 sq
参数。 我也尝试对 sq
参数的值进行 URL 编码以确保,但没有运气。 似乎sq
参数值只能引用基于列表的提要中的列标题。 有谁知道是不是这样吗? 在我的 cURL 调用中,以下是我尝试的一些 URL(cURL 请求已经过身份验证):
https://spreadsheets.google.com/feeds/list/{key}/od6/private/full?sq=limit+3+offset+3 //returns Parse error: null
https://spreadsheets.google.com/feeds/list/{key}/od6/private/full?sq=limit%203%20offset%203 //URL encoded value for sq returns Parse error: null
https://spreadsheets.google.com/feeds/list/{key}/od6/private/full?sq="limit 3 offset 3 //Returns HTML marked up error with Error 400 (Bad Request)!! as <title>
我们可以对sq
参数使用什么? 它记录在任何地方吗,谷歌?
好的,所以经过更多的探索,并阅读了David Bullock关于这个SO线程的答案,我转到了Google的旧协议参考文档 - API vesion 2.0。 我通读了"查询"部分,很高兴地报告,即使对于最新的 API 版本,start-index
和 max-results
参数仍然适用于基于列表的提要 URL。
因此,例如,假设您有一个包含 100 行的特定工作表的 href,您可以使用这样的东西来检索第 50 行到第 67 行:
https://spreadsheets.google.com/feeds/list/{key}/od6/private/full?start-index=50&max-results=17
虽然目前这是令人满意的,但最好从谷歌知道这些参数是否会被弃用。 我认为它们将被弃用,因为当前的 API 文档中没有对它们的引用。 很高兴直接从谷歌那里听到,但现在我只使用这些经典的参数。