🤖

GAS で OAuth のスコープが足りなくてやったこと

2021/12/20に公開

Google Form が送信された後に実行される GAS で 外部にリクエストを飛ばすために UrlFetchApp.fetch を実行しようとしたのですが、

Exception: UrlFetchApp.fetch を呼び出す権限がありません。必要な権限: https://www.googleapis.com/auth/script.external_request at onSubmit(コード:25:15)

というエラーで怒られてしまいました。

解消のためにやったこと

まずは設定に行って 「appsscript.json」マニフェスト ファイルをエディタで表示する にチェックをつけます。

そうするとコードのところで appscript.json というのが出現するので、次のように足りないスコープを追加します。

"oauthScopes": [
   "https://www.googleapis.com/auth/script.external_request",
   "https://www.googleapis.com/auth/forms"
  ],

ここからが分かりづらいところでした。
上記を加えた時点ではまだリクエストされているだけで権限は付与されていません。引き続きエラーが出ます。

ではどこに行けば認証できるのか。
それは該当のスクリプトを実行することでした。

そうするとこんな感じのダイアログが出てくるので、進めて許可をすれば大丈夫です。

Discussion