Google Calendar API を試している。
↓のコミットには含まれていないのだけど、いろいろ試している。
Service Account の場合、イベント自体は作成できるものの、招待できない。エラーメッセージには Domain-Wide Delegation が有効でない Service Account は……と書かれていたりするので調べると有効化すれば……という記事が出てくるのだけど、試した感じ、できない。
たぶん↓あたりは対応した。他にもいろいろやっているかもしれない。
- Google Workspace の管理画面から「セキュリティ」「 API 制御」「ドメイン全体の委任」でクライアントIDとスコープを設定
- Google Workspace の管理画面から「アプリ」「Google Workspace」「カレンダーの設定」で「メインカレンダーの外部共有オプション」「すべての情報を共有する(カレンダーの管理を許可する)」
- 既定ではない追加したカレンダーは「予備カレンダーの外部共有オプション」側で設定が必要
- カレンダーの設定画面から「特定のユーザーまたはグループと共有する」に client_email を追加し「変更および共有の管理権限」をつける
- 上記の共有オプションの設定を入れていない場合はこの項目を選択できないかったりする
- (効果があるかわかっていない) Service Account に「サービスアカウント トークン作成者」をつける
追記: ↑に追加でトークン取得時に JWT の sub フィールドになりすましたいユーザーのメールアドレスを入れると動いた。 https://developers.google.com/identity/protocols/oauth2/service-account?hl=ja#authorizingrequests
今日のコミット。
- rust-sandbox 1 commit