9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GoogleAppsScriptのトリガや承認周りの仕様メモ

Posted at

対象

Google Apps Scriptでスプレッドシート、フォーム送信等の参照を行っていたり、メール機能を利用している場合

サンプル

// メール
MailApp.sendEmail(...)

// フォーム
function onFormSubmit(e) {
    ...
}

// スプレッドシート
sheet = SpreadsheetApp.getActiveSpreadsheet();

Google Apps Scriptのざっくばらんな仕様

  • スクリプト内でスプレッドシートの参照やメールの送信などをGoogle Apps経由で行おうとする場合に必ず承認が求められる
  • スクリプトそのものにオーナーという概念は存在せず、帰属するスプレッドシートやフォームの編集権限があれば誰でも閲覧、編集可
  • トリガーは設定したアカウントでしか閲覧、編集ができない
  • トリガー実行時の承認情報はトリガーを設定したアカウントの承認情報が用いられる

問題点

  • トリガー設定したアカウントが消えた時に承認情報がなくなりトリガー実行が(たぶん)失敗する
  • トリガー失敗時のエラー通知も基本的にそのアカウントのメールへ届くため誰もそのスクリプトが死んだことに気付けない(と思う)

移行手順

  1. 別のアカウントにてスクリプトエディタを開き、該当のスクリプトが書かれている関数を実行する
  2. その際に「承認する?」ってダイアログがでるので承認して該当機能を実行できる状態にする
  3. 日時指定でトリガー設定を行い正常にトリガが実行されることを確認する
  4. 元のトリガ設定に戻す

分からんところ

特にトリガー設定や承認を解除しなかったままアカウントが消えた時の挙動

9
6
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?