Google Visualization API使用Google Spreadsheet作为“经过身份验证的”数据源通过JavaScript客户端API验证

时间:2012-08-12 00:47:14

标签: google-sheets google-visualization google-drive-api

Google Visualization API文档指出使用Google电子表格作为数据源的最简单方法是发布它。而且在正常情况下效果很好。但我正在使用Drive API动态创建Google电子表格。因此,即使我获得授权,然后创建电子表格,我也无法立即将该数据用作数据源。所以我需要两种解决方案之一:

1)通过Drive API以编程方式“发布”Google电子表格?

2)向Google Visualization API验证查询?

代码如下所示:

var url = 'https://spreadsheets.google.com/tq?key=' + idOfSpreadsheet + '&headers=1&pub=1';
var query = new google.visualization.Query(url);
query.send(drawTable);

你会认为我可以将auth令牌附加到url varible,但我找不到任何关于它的文档。这将是我的第一选择。

否则,我可以发布电子表格,但我无法从JavaScript中找到如何做到这一点。目前,我必须在Google云端硬盘用户界面中打开新创建的电子表格并手动发布。我步骤我不想向用户解释如何使用每个动态创建的电子表格来完成。

干杯詹姆斯

1 个答案:

答案 0 :(得分:0)

正如您所提到的,您可以尝试将oauth 2访问令牌附加到网址。

创建Google电子表格后,您可以通过授权来查询其元数据:

GET https://www.googleapis.com/drive/v2/files/<file_key>

See documentation

在ile的元数据中,您将获得可能的导出格式列表:

...
"exportLinks": {
  "application/pdf": "https://docs.google.com/...&exportFormat=pdf",
  "application/x-vnd.oasis.opendocument.spreadsheet": "https://docs.google.com/...exportFormat=ods",
  "application/vnd.ms-excel": "https://docs.google.com/...&exportFormat=xls"
},
...

未列出CSV,因为它只允许您下载第一张,但它受支持,因此您可以使用以下网址:

https://docs.google.com/feeds/download/spreadsheets/Export?key=<file_key>&exportFormat=csv

您必须执行授权请求,因此您需要附加您的身份验证令牌,如下所示:

https://docs.google.com/feeds/download/spreadsheets/Export?key=<file_key>&exportFormat=csv&access_token=<auth_token>

请注意,OAuth 2.0访问令牌仅在1小时内有效,因此您最终需要刷新它们。