対象
Google Apps Scriptでスプレッドシート、フォーム送信等の参照を行っていたり、メール機能を利用している場合
サンプル
// メール
MailApp.sendEmail(...)
// フォーム
function onFormSubmit(e) {
...
}
// スプレッドシート
sheet = SpreadsheetApp.getActiveSpreadsheet();
Google Apps Scriptのざっくばらんな仕様
- スクリプト内でスプレッドシートの参照やメールの送信などをGoogle Apps経由で行おうとする場合に必ず承認が求められる
- スクリプトそのものにオーナーという概念は存在せず、帰属するスプレッドシートやフォームの編集権限があれば誰でも閲覧、編集可
- トリガーは設定したアカウントでしか閲覧、編集ができない
- トリガー実行時の承認情報はトリガーを設定したアカウントの承認情報が用いられる
問題点
- トリガー設定したアカウントが消えた時に承認情報がなくなりトリガー実行が(たぶん)失敗する
- トリガー失敗時のエラー通知も基本的にそのアカウントのメールへ届くため誰もそのスクリプトが死んだことに気付けない(と思う)
移行手順
- 別のアカウントにてスクリプトエディタを開き、該当のスクリプトが書かれている関数を実行する
- その際に「承認する?」ってダイアログがでるので承認して該当機能を実行できる状態にする
- 日時指定でトリガー設定を行い正常にトリガが実行されることを確認する
- 元のトリガ設定に戻す
分からんところ
特にトリガー設定や承認を解除しなかったままアカウントが消えた時の挙動