Автор оригинала: Travis Ramos.
Многие люди и бизнес используют листы Google для управления важными данными. Будь то инвентарный счет, история расходов или список клиентов, листы Google – это мощный инструмент, который можно использовать для хранения этих данных и намного больше!
Прошли времена пробы, бесчисленные часы вручную вставляем ваши драгоценные данные. С API Google вы можете автоматизировать определенные задачи, которые в противном случае будут стоить вам время и деньги.
В этой статье я научу вас 3 вещи:
- Как создать новый лист
- Как написать на лист
- Как читать с листа
Прежде чем мы начнем, вам нужно включить API Google Pailets. Зайдите в консоль разработчика, нажмите «Библиотека» в меню и найдите API Google Pailets. Нажмите на него и нажмите «Включить». Это даст вам ваши «конфигурации клиента», которые дадут вашему сценарию или приложению возможность использовать API с вашей учетной записью Google. Загрузите эти конфигурации и сохраните файл «Credgancys.json» в рабочий каталог.
После этого вам нужно будет запустить следующую команду NPM, чтобы установить библиотеки:
«NPM установить GoogleAppis @ 39 –save»
Первый шаг, прежде чем каждый сценарий генерирует аутентификацию, которая зависит от объема, которые вы позволяете иметь ваш скрипт. Мы будем давать нашему скрипту возможность создавать, писать и читать с листа, установив наш объем на « » https://www.googleapis.com/auth/spreadsheapshies ‘ Отказ
Аутентификация в начале каждого сценария будет искать файл под названием «Token.json» для авторизации вашего сценария. Если файл не выдыхает, он предложит вам в консоли для авторизации вашего stup и создать файл. Теперь пришло время начать!
Создать новый лист
const fs = require('fs');
const {google} = require('googleapis');
const readline = require('readline-promise').default;
const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';
//authorization
async function authorize(credentials) {
const { client_secret, client_id, redirect_uris } = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]
);
try {
const token = fs.readFileSync(TOKEN_PATH);
oAuth2Client.setCredentials(JSON.parse(token));
return oAuth2Client;
} catch (err) {
const authorizedClient = await getNewToken(oAuth2Client);
return authorizedClient;
}
};
async function getNewToken(oAuth2Client) {
const authUrl = oAuth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES,
});
console.log('Authorize this app by visiting this url:', authUrl);
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const code = await rl.questionAsync('Enter the code from that page here: ');
rl.close();
const { tokens } = await oAuth2Client.getToken(code);
oAuth2Client.setCredentials(tokens);
fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
console.log('Token stored to', TOKEN_PATH);
return oAuth2Client;
};
async function createSpreadsheet(sheets, title) {
const resource = {
properties: {
title,
}
}
const { data } = await sheets.spreadsheets.create({ resource });
console.log(`Created new spreadsheet with ID: ${data.spreadsheetId}`);
return data.spreadsheetId;
}
const main = async () => {
const content = fs.readFileSync('credentials.json');
const auth = await authorize(JSON.parse(content));
const sheets = google.sheets({ version: 'v4', auth });
const title = "test";
await createSpreadsheet(sheets, title);
};
main();
Это создаст новую электронную таблицу и даст вам удостоверение личности, чтобы связать его.
Писать на лист
Используйте лист из предыдущего скрипта для скрипта ниже.
const fs = require('fs');
const {google} = require('googleapis');
const readline = require('readline-promise').default;
const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';
//authorization
async function authorize(credentials) {
const { client_secret, client_id, redirect_uris } = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]
);
try {
const token = fs.readFileSync(TOKEN_PATH);
oAuth2Client.setCredentials(JSON.parse(token));
return oAuth2Client;
} catch (err) {
const authorizedClient = await getNewToken(oAuth2Client);
return authorizedClient;
}
};
async function getNewToken(oAuth2Client) {
const authUrl = oAuth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES,
});
console.log('Authorize this app by visiting this url:', authUrl);
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const code = await rl.questionAsync('Enter the code from that page here: ');
rl.close();
const { tokens } = await oAuth2Client.getToken(code);
oAuth2Client.setCredentials(tokens);
fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
console.log('Token stored to', TOKEN_PATH);
return oAuth2Client;
};
async function writeToSheet(sheets, spreadsheetId) {
const values = [['Name', 'Meals A Day', 'Body Fat Percentage']];
const resource = {
values,
};
const range = 'A1:C1';
const valueInputOption = 'USER_ENTERED';
const { data } = await sheets.spreadsheets.values.update({
spreadsheetId,
range,
resource,
valueInputOption
})
console.log('Updated cells: ' + data.updatedCells);
}
const main = async () => {
const content = fs.readFileSync('credentials.json');
const auth = await authorize(JSON.parse(content));
const sheets = google.sheets({ version: 'v4', auth });
const sheetId = "1UXvLBLbKSUlyQV3A3m-r-lmBoxN2TEUzH6USfc6XF6g";
await writeToSheet(sheets, sheetId);
};
main();
Читать с листа
const fs = require('fs');
const readline = require('readline-promise').default;
const { google } = require('googleapis');
const SCOPES = ['https://www.googleapis.com/auth/spreadsheets'];
const TOKEN_PATH = 'token.json';
//authorization
async function authorize(credentials) {
const { client_secret, client_id, redirect_uris } = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(
client_id, client_secret, redirect_uris[0]
);
try {
const token = fs.readFileSync(TOKEN_PATH);
oAuth2Client.setCredentials(JSON.parse(token));
return oAuth2Client;
} catch (err) {
const authorizedClient = await getNewToken(oAuth2Client);
return authorizedClient;
}
};
async function getNewToken(oAuth2Client) {
const authUrl = oAuth2Client.generateAuthUrl({
access_type: 'offline',
scope: SCOPES,
});
console.log('Authorize this app by visiting this url:', authUrl);
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const code = await rl.questionAsync('Enter the code form that page here: ');
rl.close();
const { tokens } = await oAuth2Client.getToken(code);
oAuth2Client.setCredentials(tokens);
fs.writeFileSync(TOKEN_PATH, JSON.stringify(tokens));
console.log('Token stored to', TOKEN_PATH);
return oAuth2Client;
};
async function readSheet(sheets) {
const ranges = ['Sheet1!A2:B'];
const { data } = await sheets.spreadsheets.values.batchGet({
spreadsheetId: '1UXvLBLbKSUlyQV3A3m-r-lmBoxN2TEUzH6USfc6XF6g',
ranges,
});
console.log(data.valueRanges[0].values);
};
const main = async () => {
const content = fs.readFileSync('credentials.json');
const auth = await authorize(JSON.parse(content));
const sheets = google.sheets({ version: 'v4', auth });
await readSheet(sheets)
};
main();
Вы должны увидеть результаты, отображаемые в вашей консоли, когда вы написали на свою электронную таблицу.
Вот и все!
Если вы заинтересованы в чтении что-нибудь еще, я написал, отправляйтесь на мой блог Чтобы проверить это!
Я надеюсь, что вы нашли эту статью полезную, теперь иди создайте!