GASで一部の処理を「特定のユーザーの権限」で実行する
GCPでサービスアカウントを作成し、そのサービスアカウントに対して、GWSの「ドメイン全体の委任」でスコープ別に権限を付与する。
付与する際に必要なのは、アカウントのclient_idとスコープ(例:https://www.googleapis.com/auth/chat.groups.readonly)のみ。
https://www.googlecloudcommunity.com/gc/Community-Blogs/Google-Chat-Space-How-to-list-Google-Chat-Space-data-with-Apps/ba-p/683437
https://officeforest.org/wp/2023/08/31/google-apps-scriptで一部だけをユーザ権限で動かしたい時は?/#i-4
# 注意点
サービスアカウント作成後、鍵を作成してGASの環境変数として保存する必要があるが、何も知らないと秘密鍵の設定でハマる。
json形式でダウンロードした鍵をエディタで開き、そのまま値をコピペすることになると思うが、改行コードの問題?が起きてそのままではOAuth2のサービスに渡しても動かない。
解決策として、エディタからコピーしてきた値をGASのコード経由でsetする形を取る
code:ts
const props = PropertiesService.getScriptProperties()
props.setProperty("private_key", "(実際の秘密鍵の値をここに貼り付ける)")