[Node.js] Google Calendar API x GAE(Google App Engine)をIAMで認証する

# 趣旨

Google Calendar APIをGoogle App Engine(Webアプリケーションを公開してくれるサービス)上から叩くとき,Credential情報の入ったJSONファイルを一緒にデプロイするのには抵抗があると思います.

本記事では,Credential情報入りJSONを「使わずに」APIを叩く方法を記します.

# 結論

0. Google App EngineでWebアプリケーションを作成する.

1. https://console.cloud.google.com/ へアクセスし,IAM > サービスアカウントより"App Engine Default Service Account"の"メール"をコピーする.

画像1

2. https://calendar.google.com/ を開き,操作したいカレンダーの設定を開く.「特定のユーザと共有」項目の「ユーザを追加」をクリックし,ダイアログにコピーしたアドレスを貼り付け,お好みの権限を選択し「送信」をクリックする.

画像2

画像3

画像4

3. 開発するアプリケーション上で,まずGoogleAuth(google-auth-libraryに含まれている)をkeyFile無しでインスタンス作成し,そのままCalendar APIの引数 "auth" に付与する.

// 依存ライブラリ
const {google} = require('googleapis');
const {GoogleAuth} = require('google-auth-library');
const {calendar} = require('googleapis/build/src/apis/calendar');

// 初期化
// 引数"scopes"には,操作したい権限をお好みで追加してください.
const auth = new GoogleAuth({
    scopes: ['https://www.googleapis.com/auth/calendar.readonly']
});
const calendar = google.calendar({version: 'v3', auth: auth});

4. 認証完了.よしなに.

この記事が気に入ったらサポートをしてみませんか?