2016年3月18日金曜日

Google App Script で「getActiveForm を呼び出す権限がありません(You do not have permission to call getActiveForm)」エラーが出たら

Googleフォームで、フォーム送信者+特定のメールアドレスへ自動返信メールを送る処理が、なぜか失敗していた。

その操作を実行するには承認が必要です。

何かしら権限が足りずにエラーが発生しているようだが、これだけでは情報が足りない。



まずは、エラーが発生した際に、すぐにエラー内容を送信するように、トリガーを追加。


スクリプトエディタ > リソース > 現在のプロジェクトのトリガー




通知 > 起動失敗の通知







これでエラー時にメールが送られるようになったが、今度はエラー内容が、

getActiveForm を呼び出す権限がありません

へ変わっている。


あまり情報が無かったが、StackOverFlowで質問していた人がチラホラ見つかった。

Google App Script Error: You do not have permission to call getActiveForm? - Stack Overflow


コードへ有無を言わさず、getActiveForm() を実行する一文を挿入して、権限を尋ねるダイアログを出させるしかないようだ。

function submitForm(e){

//getActiveForm を呼び出す権限がありません」を解決するためだけの一文
//パーミッションを与えた後は不要
FormApp.getActiveForm();

....
}


FormApp変数は宣言不要。上記コードを含めるだけでいい。

デバッグを起動して、権限を尋ねるダイアログを表示させる。





自動返信メールがキター