採用系のプロダクトを提供している会社でもろもろ担当する予定の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すると、サンプルスプレッドシートが参照できました!
こちらもチェックお願いします!
Twitterアカウント
Youtubeチャンネル
↧