GASで”Exception: You do not have permission to call…”が表示されたときの対処法

GASで以下のようなエラーが出てきました。

Exception: You do not have permission to call SpreadsheetApp.getActiveSpreadsheet. Required permissions: (https://www.googleapis.com/auth/spreadsheets.currentonly || https://www.googleapis.com/auth/spreadsheets)

簡単なエラーなので、メモとして残しておきます。

目次

どんな時に起きるの?

このエラーはGASのプロジェクトがGCPに紐づいているとき、スコープ設定が適切にされていない場合などに発生するようです。

スコープを適切に設定して、実行時に認証を通してあげれば動かせます。

実際にやること

1. appscript.jsonにスコープを追加

スクリプトエディタにあるappscript.jsonを開いて、”oauthScopes”に必要なスコープを追加します。

もしappscript.jsonが無い場合、この後に出てくる「appscript.jsonが表示されていない場合」の箇所を参考にして表示させましょう。

スコープはエラーメッセージに書かれているURLをそのままコピペでOKです。

{
  "timeZone": "Asia/Tokyo",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets.currentonly",
    "https://www.googleapis.com/auth/spreadsheets"
  ]
}

これで設定完了。

GASを実行時に認証を通す

あとはGASを実行するだけです。初回実行時と同様に権限関連の認証画面が出るので、それを通せば実行可能です(もちろん実行者に権限があればですが)

appscript.jsonが表示されていない場合

設定によってはappscript.jsonが非表示になっている場合があります。

そのときはスクリプトエディタの歯車マーク(プロジェクトの設定)を押して、「全般設定」欄の”「appsscript.json」マニフェスト ファイルをエディタで表示する”にチェックを入れれば表示されるようになります。

まとめ

対処法自体はとても簡単ですね。

権限周りはきちんとした管理が必要なので、気をつけて設定していきましょう。

ちなみに、”Exception: The script does not have permission to perform that action. Required permissions:” というエラーが出た際も同じ対応で解決できました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内Edtech企業のコーポレートエンジニア。
業務改善・自動化についての開発をしています。
エンジニア歴9年、コーポレートエンジニア歴4年。

目次