# 1. セットアップ
- corpinfraプロジェクトのIAMから「Storageオブジェクトユーザー」の権限付与をしてもらう
- テスト用のGoogleカレンダーにアクセス権限があるか確認する
Googleカレンダーの「他のカレンダー」の＋ボタンから「カレンダーに登録」＞「GMEET_RECORDING_TEST」を探す
- 共有ドライブ「TimeTree」に編集権限があるか確認する
なかったらもらう
- gcloudをインストールする
https://cloud.google.com/sdk/docs/install?hl=ja
- gcloudで認可を行い、credentialを発行する
```
$ gcloud auth application-default login --scopes "https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/drive.metadata,https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/cloud-platform"
```
ブラウザ上で認可を行う。
- node.js とモジュールをインストールする
インストール後に
```
$ yarn install
```
- 環境変数をセットする
```
export SHARED_DRIVE_FOLDER=1MirlA6DoP-OTKQr-YD_GM9a24SI0mo2s
export SLACK_BOT_TOKEN=<YOUR BOT TOKEN> # chat:write, users:read.email のscopeが必要です
export SLACK_CHANNEL_ID=<YOUR TEST SLACK CHANNEL ID>
export GCAL_ID=c_1ae491f66d7051aa389a562b752c2dd0491418b49853cb0ccfb53f9beeb6dfa0@group.calendar.google.com  # GMEET_RECORDING_TESTカレンダー
export GOOGLE_APPLICATION_CREDENTIALS=/Users/$USER/.config/gcloud/application_default_credentials.json
```
# 2. ローカル起動
```
$ yarn dev
```
共有カレンダーへ予定を作成して録画を作成した後に、ローカルで処理を実行してください。
- 注意点
この方法でテストできるのは「自分が作成した予定」の録画のみです。他人が作成した予定の録画は、Googleドライブでファイルを探すときに not found になります。（他人のマイドライブにはアクセスできないため）
そのため、テスト用のカレンダーに作られた他人の予定はエラーになり移動できません。
# 3. デプロイ
（CI/CD未対応です）
```
$ yarn deploy
```

# もしDomain Wide Delegation (他人の作成した予定の録画の移動） をどうしてもローカルでテストしないといけない場合
1. corpinfra の IAMで、自分のメールアドレスに「サービスアカウントトークン作成者」を付与する
https://console.cloud.google.com/iam-admin/iam?project=corpinfra
2. 環境変数に以下を足す
```
export DWD=enable
```