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云端硬盘用户界面中打开新创建的电子表格并手动发布。我步骤我不想向用户解释如何使用每个动态创建的电子表格来完成。
干杯詹姆斯
答案 0 :(得分:0)
正如您所提到的,您可以尝试将oauth 2访问令牌附加到网址。
创建Google电子表格后,您可以通过授权来查询其元数据:
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,因为它只允许您下载第一张,但它受支持,因此您可以使用以下网址:
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小时内有效,因此您最终需要刷新它们。