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:” というエラーが出た際も同じ対応で解決できました。