доступ к данным внутри nodejs электронной таблицы Google

#javascript #google-api #spreadsheet

#javascript #google-api #электронная таблица

Вопрос:

Я пытаюсь получить доступ к данным внутри электронной таблицы

  const { GoogleSpreadsheet } = require('google-spreadsheet');
 const  {promisify} = require('util');
 const creds = require('./client_secret.json');


 async function accessSpreadsheet() {

 const doc = new GoogleSpreadsheet('1cErelgrkTYCOiEaTiFviF3M7chqMesmLBSp2rbxnFD4');
 await promisify(doc.useServiceAccountAuth)(creds);
 const info  = await promisify(doc.getInfo)();
 const sheet = info.worksheets[0];
 console.log(`Title: ${sheet.title}`);



 }


accessSpreadsheet();
  

и это выдает мне ошибку

  TypeError: Cannot set property 'jwtClient' of undefined
  

Есть идеи?

Ответ №1:

Если у вас есть :

  1. Идентификатор клиента
  2. секрет клиента
  3. обновить токен

затем вы можете просто выполнить все шаги, приведенные ниже, чтобы получить доступ к любым данным электронной таблицы Google в node JS :

1. включите эти библиотеки:

 const { google } = require('googleapis')
 const { OAuth2 } = google.auth
  

2. Настройка пользователя

 const oAuth2Client = new OAuth2('your client ID', 'your client Secret')

  oAuth2Client.setCredentials({
      refresh_token: 'your Refresh Token'
  });
  

3. Введите диапазон и идентификатор листа, к которому вы хотите получить доступ:

 const sheets = google.sheets({version: 'v4', auth:oAuth2Client});

let result = await sheets.spreadsheets.values.get({
  spreadsheetId: 'SpreadSheet Id You Want To Access',
  range:'A1:D3' //range you can specify according to you
});
  

4. теперь получите доступ к объекту result, который хранит данные в формате json:

 console.log(result.data.values);
  

введите описание изображения здесь

вы получите данные, подобные приведенной выше таблице

введите описание изображения здесь