nodeJSとスプレッドシートを連携して、スプレッドシート上の値を取得するところまでを解説します。
順序
①. auth情報を取得する
②. スプレッドシート側で権限を確認する
③. nodeJSのコードを書いて実行する
の3本立てで説明しました。
①. auth情報を取得する
Google Cloud Platform(Google API)でGoogleSpreadSheetのAPIを有効化させます。すでに"サービスアカウント"の認証情報のjsonを持っている人は不要です
必須の入力箇所のみ適当に入れてあとは空白(もしくは任意)で進めていきます。
プロジェクトを立てたら「APIとサービス」へいって下記の流れでGoogle Spread Sheet APIを有効化させます。
画面の左端の方の「認証情報」をクリックしてから「認証情報を作成」をクリックします。下記の流れで"サービスアカウント"を作成してキーの入ったjsonファイルをDLします。
必須項目より他は空白で大丈夫です(もしくは任意)
画面左端の「認証情報」のページを改めて開くと"サービスアカウント"の中にアカウントが追加されているのでクリックします。
ここでjsonファイルとして鍵をDLすればGoogle API側の準備は完了です。
②. スプレッドシート側で権限とスプレッドシートIDを確認する
ユーザーやグループと共有の中に自分が権限を与えたいメールアドレスが含まれているかどうかを確認し、なければ追加します。
ここで、①. で用意した秘密鍵の中身を確認してください。
{
"type": "service_account",
"project_id": "test",
"private_key_id": "hoge",
"private_key": "hoge,
"client_email": "ここにスプレッドシート側で権限が付与されているメールアドレスを入力する",
"client_id": "hoge",
ー以下略ー
}
client_emailの中のメールアドレスはスプレッドシート側で権限を付与されたメールアドレスになります。
次にスプレッドシートIDを確認します。
スプレッドシートのページのURLに含まれており、ランダムな英字と記号となっています。スプレッドシートの部分をコピーしておきます。
https://docs.google.com/spreadsheets/d/スプレッドシートID/edit=hoge
③. nodeJSのコードを書いて実行する
では①. と ②.の過程で準備した情報を使って見ます。ライブラリを用意。
yarn add google-spreadsheet-as-promised
or
npm install --save google-spreadsheet-as-promised
Auth認証→スプレッドシートの1行目のAからDまでを取得するコードです。スプレッドシートに適当な文字を入力して、下記コードを実行してみてください。
constGoogleSpreadsheetAsPromised=require('google-spreadsheet-as-promised');constCREDS=require('./GoogleCloudからDLしてきた鍵.json');constSHEET_ID='あなたのスプレッドシートID';constspreadSheet=async()=>{console.log('GoogleSpreadSheetへアクセス開始します');constsheet=newGoogleSpreadsheetAsPromised();;awaitsheet.load(SHEET_ID,CREDS);console.log('auth完了');constworksheet=awaitsheet.getWorksheetByName('sheet1');constcells=(awaitworksheet.getCells('A1:D1')).getAllValues();// A1からD1までの値を取得するconsole.log(cells);return(sheet);}spreadSheet();
const worksheet = await sheet.getWorksheetByName('sheet1');
のところは任意のシート名にします。読み込めなかった場合はシート名も見直してみてください。
結果として配列の結果が取得できたと思います。