使用基于列表的Feed API和“sq”参数从Google Spreadsheet中检索一系列行

时间:2014-12-28 16:28:23

标签: google-api google-sheets google-docs-api

我的目标是使用标准cURL调用中的sq参数(API的协议方法)从Google工作表中检索一系列行。我知道the Google Sheets documentation explains the sq parameter by way of example。在该文档示例中,它使用带有比较运算符的列标题名称,但有没有办法使用sq参数检索由开始和结束行索引指定的行范围?

我知道可以使用谷歌的可视化API来做这样的事情,但似乎我用来检索数据的Google Sheet的URL需要是& #34;重构"匹配Visualization API所需的。我需要提取电子表格" key"然后重建URL as per documentation (scroll to the bottom)。作为一名开发人员,我有点厌倦了进行任何字符串操作来制定一个URL,所以我只需从Google Sheet中提取一系列行。

检索一系列行而不必使用基于单元格的API Feed的最佳做法是什么?

编辑: 我查看了Google's Query Language reference (version 0.7),发现using offset together with limit could grab a range of rows with an SQL statement。但是,当我尝试使用这些查询时,它不适用于网址中的sq参数。我尝试使用URL编码sq参数的值来确定,但没有运气。似乎sq参数值只能引用基于列表的Feed中的列标题。有人知道是不是这样吗?在我的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参数用于什么?是否记录在谷歌?

1 个答案:

答案 0 :(得分:3)

好的,经过一番探索,并在David Bullock's上阅读this SO thread回答后,我前往Google's old Protocol Reference documentation - 申请API vesion 2.0。我仔细阅读了the Queries section,并很高兴地报告start-indexmax-results参数仍适用于基于列表的供稿网址,即使是最新的API版本也是如此。

因此,假设你有一个具有100行的特定工作表的href,你可以使用这样的东西来检索第50行到第67行:

https://spreadsheets.google.com/feeds/list/{key}/od6/private/full?start-index=50&max-results=17

虽然目前这种情况令人满意,但是 很高兴知道Google是否会弃用这些参数。我假设它们将被弃用,因为当前的API文档中没有引用它们。很高兴直接听到谷歌,但现在我只会使用这些经典的参数。