【发布时间】:2019-04-20 05:27:11
【问题描述】:
Google 已经构建了 Google Sheets API 的 v4,但它的文档仍然是 v3。没有关于如何使用 Google Sheets API v4 实现简单 OAuth 身份验证的完整示例。
我看到了一个迁移指南here,我还看到了一个部分示例here 但是找不到完整的例子。 “当前”版本是 here,最后一次更新是在 2018 年 10 月,没有提供 v4 示例。
假设在我授权用户之后,我正在尝试读取 workbook2 中的特定电子表格,并且我明确指定了我需要哪些列。然后我使用 Google Visualization API 呈现这些信息。
以下是我在 Google 表格 v3 旧版中的操作方式。
function makeApiCall() {
var queryString = encodeURIComponent('SELECT A,B,C,E,H');
var tqURL = new google.visualization.Query(
'https://docs.google.com/spreadsheets/d/*yourspreadsheetid*/gviz/tq?gid=*yourworkbookid*&headers=1&tqx=responseHandler:handleTqResponse' + '&access_token=' + encodeURIComponent(gapi.auth.getToken().access_token));
tqURL.send(handleTqResponse);
}
function handleTqResponse(resp) {
var dataTable = resp.getDataTable();
}
对于 v4,如果我遵循这个部分示例 here,我如何将 tqURL 转换为 GET 方法?以及如何才能将响应 (rsp) 作为 DataTable() 获得?
function makeApiCall() {
var params = {
spreadsheetId: 'my-spreadsheet-id', // all clear here
//what about workbook gid?
// The ranges to retrieve from the spreadsheet.
ranges: [], // [A:A,B:B,C:C,E:E,H:H) ????
includeGridData: false,
//no need to include the access_token here?
};
var request = gapi.client.sheets.spreadsheets.get(params);
request.then(function(response) {
console.log(response.result);
//var dataTable = responce.getDataTable(); ??
}, function(reason) {
console.error('error: ' + reason.result.error.message);
});
}
【问题讨论】:
标签: javascript google-apps-script google-sheets google-visualization google-sheets-api