非公開のシートをnode.jsから操作できるnpmです。
短いコードで簡単に認証を抜けられる点が魅力です。
簡単な使い方紹介
まず操作したいシートにアクセスするための準備を行います。
- Google Developers Consoleで新規プロジェクトを作成
- APIと認証>API>’drive’で検索>Drive API>APIを有効にする
- APIと認証>認証情報>新しいクライアントIDを作成>サービスアカウントを選択>クライアントIDを作成
- クライアントID作成時に認証情報の入ったjsonファイルがダウンロードされるのでjsファイルと同じディレクトリに配置
- クライアントID作成後の画面に作成したサービスアカウントのメールアドレスが表示されるのでコピーしておく
- アクセスしたいシートを開き、共有ボタンを押して先ほどコピーしたメールアドレスに対して共有を有効にする
これでシートにアクセスする準備は完了です。
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のコールバック関数内で行います。詳しくは公式ドキュメントを参照してください。