node.jsから非公開のGoogle Spreadsheetを操作するnpm

非公開のシートをnode.jsから操作できるnpmです。
短いコードで簡単に認証を抜けられる点が魅力です。

google-spreadsheet

簡単な使い方紹介

まず操作したいシートにアクセスするための準備を行います。

  1. Google Developers Consoleで新規プロジェクトを作成
  2. APIと認証>API>’drive’で検索>Drive API>APIを有効にする
  3. APIと認証>認証情報>新しいクライアントIDを作成>サービスアカウントを選択>クライアントIDを作成
  4. クライアントID作成時に認証情報の入ったjsonファイルがダウンロードされるのでjsファイルと同じディレクトリに配置
  5. クライアントID作成後の画面に作成したサービスアカウントのメールアドレスが表示されるのでコピーしておく
  6. アクセスしたいシートを開き、共有ボタンを押して先ほどコピーしたメールアドレスに対して共有を有効にする

これでシートにアクセスする準備は完了です。

jsファイルを配置するディレクトリに移動し、npmをインストールします。

npm install google-spreadsheet

jsを書きます。

var GoogleSpreadsheet = require('google-spreadsheet');

var my_sheet = new GoogleSpreadsheet('<シートID>');

var creds = require('./<認証用のjsonファイル名>');

my_sheet.useServiceAccountAuth(creds, function(err){
    my_sheet.getInfo(function(err, sheet_info){
       console.log(sheet_info.title + ' is loaded!');
    });
})

シートIDは、シートを開いた時のURLのランダム文字列っぽい部分です。

以下のように上記スクリプトを実行するとシートが取得できたことが確認できます。

$ node test.js
testsheet is loaded!

うまくいかなかった場合はmy_sheet.getInfoのコールバック関数内でerrを出力してみてください。こちらにエラー情報が出ていることがあります。
シート内の要素を参照したりシートに書き込んだりといった操作もmy_sheet.getInfoのコールバック関数内で行います。詳しくは公式ドキュメントを参照してください。