採用系のプロダクトを提供している会社でもろもろ担当する予定のAkibinです。
最近は岡村ちゃんにハマってます。めちゃくちゃいまさら感満載ですが、サイコー!
岡村靖幸 - ビバナミダ
やってみたこと
Node.jsとGoogle Sheets APIでGoogleスプレッドシートの内容をMacから参照してみました。
ここらへんの情報はWebに結構多いですが、古くていまいち手順に手間取ったのとNode.js quickstartのアクセストークン取得部分が大まかなので、自分の備忘録の意味も込めて記事にしてみます。
環境
- MacOS
12.2.1
- Node.js
v16.14.2
- npm
8.5.0
- Google Sheets API v4
- Visual Studio Code
作業概要
- Google Sheets APIを有効にする
- アクセストークンを取得
- ライブラリのインストール
- VS Codeでスクリプト実行時の入力の受け取りをできるようにする
- サンプルコードの実行(Node.jsからスプレッドシートの参照)
作業
Google Sheets APIを有効にする
-
GCP
>IAMと管理
>プロジェクトを作成
から任意のプロジェクを作成 - 作成したプロジェクトを選択して
APIとサービス
>ライブラリ
を開く -
Google Sheets API
を有効にする
アクセストークンを取得
Google Sheets APIを使用するにはOAuthでアクセストークンを取得する必要があるようです。まずOAuth 同意画面
でOAuthのポリシーとスコープを設定、その後認証情報
からアクセストークンを取得します。
-
APIとサービス
>OAuth 同意画面
を開く - 今回はGoogleWorkSpaceのアカウントではないので、
内部
は選択できません。外部
を選択して作成
-
アプリ情報
で以下を入力、保存して次へ
- アプリ名:任意の名前
- ユーザサポートメール:自身の適当なメールアドレス
- デベロッパーの連絡先情報:自身の適当なメールアドレス
-
スコープ(アプリのユーザーに許可を求める権限)
を設定します。 -
テストユーザ
でアプリへのアクセスを許可するユーザを追加します。
正式にアプリを使用する場合は本番環境に移行する必要がありますが、結構Googleの承認が大変みたいです。今回はテストなのでテストユーザのまま進みますADD USERS
- アプリを使用するGoogleアカウントのメールアドレスを入れて
追加
保存して次へ
- 設定内容を確認して
ダッシュボードに戻る
。次にアクセストークンを取得します。 -
APIとサービス
>認証情報
を開く -
認証情報を作成
>Oauth クライアントID
- アプリケーションの種類:
デスクトップアプリ
を選択して、名前
に任意の名前を入力。作成
- アクセストークンが作成されます。
JSONをダウンロード
でトークンが記載されたjsonファイルをダウンロード - jsonファイルを作業ディレクトリに移動して名前を
credentials.json
に変更しておく
ライブラリのインストール
VS Codeのターミナルで以下コマンドを実行してGoogleAPIのNode.jsクライアントライブラリをインストール
npm install googleapis
VS Codeでスクリプト実行時の入力の受け取りをできるようにする
追々実行するNode.js quickstartのサンプルがOAuthトークンをreadlineで受け取ろうとしているが、Visual Studio Codeのコンソールは出力専用なので、VS Codeでスクリプトを実行すると入力の受け取りができないので、launch.jsonの設定を変え、コンソールを外部のものにする必要があるようです。
- VSCode画面左の虫ボタンをクリックします。Run and Debugの下のcreate a launch.json fileをクリック
- 「Select Environment」と要求されるので選択肢の中から
Node.js(legacy)
を選択 - 作成された
launch.json
ファイルを開き、configurations
に"console": "externalTerminal"
を追加
- あと、
program
は、後々自分の作業ディレクトリにindex.js
を作成するので、そのパスに更新しておいてください
サンプルコードの実行(Node.jsからスプレッドシートの参照)
サンプルコードを実行して、サンプルとして公開されているスプレッドシートの値を取得します。
- 作業ディレクトリに
index.js
を作成、Node.js quickstartのサンプルコードを貼り付ける
-
node index.js
でサンプルコードを実行 - ターミナルに認証用のURLが表示されるので、
this url:
以降のURLをコピーしてブラウザでアクセス
- アカウント選択画面でトークンを取得したアカウントを選択
-
続行
をクリック
-
続行
をクリック
- Macのlocalhostで何も設定していなければ以下画面が表示されますが、URL部分の
code=
から&scope
までの部分をコピー
- ターミナルに戻りコピーしたコードを貼り付けEnterすると、サンプルスプレッドシートが参照できました!