gasでカレンダーを扱うときにタイトルのエラーが出たときの対応方法を記載します。
エラーメッセージ
Exception: スクリプトにはその操作を行う権限がありません。その操作を行うには「(https://www.googleapis.com/auth/calendar || https://www.googleapis.com/auth/calendar.readonly || https://www.google.com/calendar/feeds)」権限が必要です。
原因
googleカレンダーにアクセスする権限の設定が足りていないためです
対応方法
1. appsscript.jsonを表示
スクリプトエディタのメニューの「プロジェクトの設定」を選択します。
プロジェクトの設定をクリックすると「「appsscript.json」マニフェスト ファイルをエディタで表示する」というチェックボックスが出てくるのでチェックをします。
すると、エディタに「appsscript.json」というファイルが出てきます。
2. appsscript.jsonにカレンダー参照権限を追加
appsscript.jsonの “oauthScopes”: [ というところに「”https://www.googleapis.com/auth/calendar.readonly”,」を追加します。
"oauthScopes": [
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/spreadsheets",
"https://www.googleapis.com/auth/forms",
"https://www.googleapis.com/auth/calendar.readonly"
],
「”https://www.googleapis.com/auth/calendar.readonly”」以外も記入されているますがフォーム絵のアクセス権限などカレンダーにアクセスするのに必要なものではありません。
カレンダーだけであれば、「”https://www.googleapis.com/auth/calendar.readonly”」の追加だけで問題ありません。
これを保存することでカレンダーアクセスの権限がつき、エラーは解消されるかと思います。
それでもエラーが出る場合
トリガー経由で実行している場合は、appsscript.jsonに設定しても引き続きエラーが出てしまうことがあります。
その場合は、スクリプトエディタで一度カレンダーを参照する関数を手動で実行してみてください。
そうすると権限許可するかどうかの確認画面が出るので、許可をすると今後トリガー経由での参照ができるようになるかと思います。
試してみてください。
[…] appscript.jsonの表示方法 […]