経緯

Google App Scriptだけでは外部ライブラリを使ったりnpmを使ったりするのが難しいの

Cloud Functions で処理してデータを返してもらって作ろうと思った時の認証について

ひとまず簡易なやり方で

結論

  • GCPでOAuth 同意画面を作成
  • Google App Script側をOAuth 同意画面作ったGCPプロジェクト作成
  • appscript.jsonの編集してOAuthスコープの設定

あと下記のようなコードで認証できる

function myFunction() {
  const url = "https://xxxxxx.cloudfunctions.net/xxxxx"
  const res = UrlFetchApp.fetch(url, {
    headers: {
      Authorization: `Bearer ${ScriptApp.getIdentityToken()}`
    }
  })
  console.log(res.getContentText()) // Fnctiionの結果
}


GAS(GoogleAppsScript)から認証付きのCloud Functionsをサービスアカウントを使用して呼び出す #GoogleCloud - Qiita GASから認証付きのCloud Functionsを実行する。 #GoogleCloud - Qiita

Google Apps Script (GAS) から Cloud Functions に認証付きでアクセスする – kkuchima memo

Google Apps Script で書かれたアドオンのバックエンドを Cloud Run に移行した話 - Link and Motivation Developers' Blog

GAS + CloudFunctionsでVisionAPIの処理結果をスプレッドシートに出力する #GoogleAppsScript - Qiita