未使用Node定义的Google Sheets Client

霍格顿14

我在获取节点中的工作表对象时遇到麻烦。我可以进行身份​​验证,但是当我尝试阅读给定的工作表时,client.sheets返回undefined。这很奇怪,因为在sheets对象中填充了如下所示的数据。即使我像这样传入客户端readSheets(gapi.client)并在readSheets中记录变量,它仍然会返回undefined。为什么会这样呢?

    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在控制台中:

在此处输入图片说明

马克西姆·马祖罗克(Maxim Mazurok)

您不应该在后端(在NodeJS环境中)使用浏览器(也称为客户端)或GAPI。

对于NodeJS,您应该使用googleapis

对于浏览器,您应该使用GAPI(https://apis.google.com/js/api.js)。如果您想将TypeScript与GAPI一起使用-您应该安装@ types / gapi.client.sheets或使用google-api-typings-generator生成自己的类型

有关这两个用例之间差异的更多详细信息,请参阅:JavaScript VS NodeJS Google API客户端

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章