【发布时间】:2018-07-30 13:59:48
【问题描述】:
我无法在节点中抓取工作表对象。我能够进行身份验证,但是当我尝试阅读给定的工作表时,client.sheets 返回未定义。这很奇怪,因为工作表对象填充了如下所示的数据。即使我像readSheets(gapi.client)一样传入客户端并将变量记录在readSheets中,它仍然返回未定义。为什么会这样?
var CLIENT_ID = 'MYID.apps.googleusercontent.com';
var API_KEY = 'MYAPIKEY';
var DISCOVERY_DOCS = ["https://sheets.googleapis.com/$discovery/rest?version=v4"];
var SCOPES = "https://www.googleapis.com/auth/spreadsheets";
gapi.load('client', {
callback: function() {
initClient();
},
onerror: function() {
alert('gapi.client failed to load!');
}
});
const initClient = () => {
console.log(gapi.client)
gapi.client.init({
apiKey: API_KEY,
clientId: CLIENT_ID,
discoveryDocs: DISCOVERY_DOCS,
scope: SCOPES
});
readSheets();
}
function readSheets() {
console.log(gapi.client.sheets); // undefined
gapi.client.sheets.spreadsheets.values.get({
spreadsheetId: 'MySpreadsheetID',
majorDimension: "COLUMNS",
range: 'Sheet1!A1:B2',
}).then(function(response) {
console.log(response.result.values)
}, function(response) {
console.log('Error: ' + response.result.error.message);
});
}
gapi.client 然后gapi.client.sheets 在控制台中:
【问题讨论】:
-
如果我误解了您的问题,我很抱歉。我可以问你运行脚本的方法吗?因为我认为你的脚本可能是 Javascript。
-
@Tanaike 你是正确的js
-
感谢您的回复。您在浏览器上运行脚本。我是这样理解的。在这种情况下,Node.js 用在哪里?
-
@tanaike localhost?
-
我以为使用gaip的时候需要加载
https://apis.google.com/js/api.js或者https://apis.google.com/js/client.js。您可以在here 看到示例脚本。但是因为我不确定你的 Node.js 环境,所以我问了。