[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"の"メール"をコピーする.
2. https://calendar.google.com/ を開き,操作したいカレンダーの設定を開く.「特定のユーザと共有」項目の「ユーザを追加」をクリックし,ダイアログにコピーしたアドレスを貼り付け,お好みの権限を選択し「送信」をクリックする.
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. 認証完了.よしなに.
この記事が気に入ったらサポートをしてみませんか?