ノード.グーグルシートを読む🤓


データベースに関しては、SQLデータベースやNoSQLの代替案についてよく考えますが、Googleのシートを考えてみませんか?
ええ、待って?はいGoogleシートは、データストアとして機能することができます!
だから今日、私たちはNode.js Googleシートからデータを読み取るスクリプト.
次のようになります.

プロジェクトの開始


最初からプロジェクトを開始します.まず、新しいノードプロジェクトを設定しましょう.
npm init
ここでプロンプトに従ってください.特別な何も必要

More info about starting a node app here.


それでは、Google APIパッケージをインストールしましょう.
npm install googleapis@39 --save
それは本当にです!
現在、我々は我々を得る必要がありますcredentials.json Googleからファイル.
次のURLを参照してくださいEnable the Google Sheets API ボタン.
Google Quickstart
コピーするcredentials.json プロジェクトにファイルします.

ノードスクリプトの作成


そこに行くと、Googleの提供されているノードスクリプトを使用して開始されます.
クリエイトアindex.js プロジェクト内のファイル.
変数を定義することから始めます
const fs = require('fs');
const readline = require('readline');
const {google} = require('googleapis');
次に、どのAPIを使いたいかをGoogleに伝える必要があります.
const SCOPES = ['https://www.googleapis.com/auth/spreadsheets.readonly'];
と空を定義するtoken.json PATH ( Googleはそこにトークンを保存します)
const TOKEN_PATH = 'token.json';
その後、我々は資格情報ファイルを読んで、Googleで認可する必要があります!
そして、それがすべて行われるとき、我々は我々を呼びますlistMajors 主な機能である機能!
fs.readFile('credentials.json', (err, content) => {
  if (err) return console.log('Error loading client secret file:', err);
  authorize(JSON.parse(content), listMajors);
});
を、許可する機能を許可しましょう!
function authorize(credentials, callback) {
  const {client_secret, client_id, redirect_uris} = credentials.installed;
  const oAuth2Client = new google.auth.OAuth2(
      client_id, client_secret, redirect_uris[0]);

  fs.readFile(TOKEN_PATH, (err, token) => {
    if (err) return getNewToken(oAuth2Client, callback);
    oAuth2Client.setCredentials(JSON.parse(token));
    callback(oAuth2Client);
  });
}
私たちは、ファイルから受け取って、新しいOAuthクライアントを作成して、資格情報を定義しています.
それから、我々は新しいものを始めますtoken.json ファイルと呼び出しgetNewToken 関数.
function getNewToken(oAuth2Client, callback) {
  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,
  });
  rl.question('Enter the code from that page here: ', (code) => {
    rl.close();
    oAuth2Client.getToken(code, (err, token) => {
      if (err) return console.error('Error while trying to retrieve access token', err);
      oAuth2Client.setCredentials(token);
      fs.writeFile(TOKEN_PATH, JSON.stringify(token), (err) => {
        if (err) return console.error(err);
        console.log('Token stored to', TOKEN_PATH);
      });
      callback(oAuth2Client);
    });
  });
}
これは、何が起こっているか、ちょっとのビットです.
しかし、我々の機能を実行するとき、我々はURLを訪問するよう求められる.
それから、我々はそれを訪問しなければならなくて、我々のシートへのGoogleアクセスをしなければなりません.
我々は、我々がペーストするコード背中を得ます.
その後、我々のトークンが作成されます!


Googleのシートからのノードの読み込み。


Googleシートから読み取る実際の関数を作成するにはlistMajors ) 次のコードを使用します.
function listMajors(auth) {
    const sheets = google.sheets({ version: 'v4', auth });
    sheets.spreadsheets.values.get({
        spreadsheetId: '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms',
        range: 'Class Data!A2:E',
    }, (err, res) => {
        if (err) return console.log('The API returned an error: ' + err);
        const rows = res.data.values;
        if (rows.length) {
            console.log('Name, Major:');
            // Print columns A and E, which correspond to indices 0 and 4.
            rows.map((row) => {
                console.log(`${row[0]}, ${row[4]}`);
            });
        } else {
            console.log('No data found.');
        }
    });
}
それで、我々は新しいシートAPIを定義することから始めます.
それから、我々は電話しますvalues.get ここで、スプレッドシートID、およびセルの範囲を渡します.

Note: This ID is the default Google Testing document!


それから、我々がデータを得るならばconsole.log コンソールへの特定のデータバック!
そこに行くと、我々は今Googleシートから読み取ることができるノードスクリプトを作った.

スクリプトの実行


スクリプトを実行するには、次のコマンドを実行します.
node .

When putting this code in Git, make sure to keep your credentials and token safe 🤓


私の完全なコードを見つけることができますGitHub またはGoogle .

読んでいただきありがとうございます、接続しましょう!


私のブログを読んでくれてありがとう.私の電子メール会報を購読して、接続してくださいFacebook or