2

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);

您会认为我可以将身份验证令牌附加到 url 变量,但我找不到任何文档。这将是我的第一选择。

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

干杯詹姆斯

4

1 回答 1

0

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

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

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

请参阅文档

在 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 未列出,因为它只允许您下载第一张工作表,但它受支持,因此您可以使用以下 URL:

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 小时内有效,因此您最终需要刷新它们。

于 2012-08-18T14:04:14.917 回答