この話は一体
この記事はGASのScriptAppのTriggerのスコープを実際にアドオンつくって検証してみた話です。
前提
TriggerはDocumentのイベントに応じて処理を走らせるやつです。
TimerBase以外にもいろいろ種類はありますが、多分スコープの考え方は同じなので今回はTimerBaseのTriggerでテストしました。
実験手順
A-spreadsheetとB-spreadsheetのふたつのシートを使ってアドオンでTriggerを設定し、双方でScriptApp.getProjectTrigger
して設定したトリガーを取得できるかどうかを検証したもの。
また、アドオン化したときにscript idが同じになるので、それぞれのユーザー間でも共有されるかどうかもテストした。
結果
AさんがA-spreadsheetにアドオンでtimerBasedTrigger設定したときの結果
AさんがA-spreadsheet見たとき | AさんがB-spreadsheet見たとき | BさんがA-spreadsheet見たとき | BさんがB-spreadsheet見たとき |
---|---|---|---|
見れる | 見れる | みれない | みれない |
まとめ
getProjectTriggerって名前だったのでscript idが同じならtrigger共有されかねないかなって思ってたけど同scriptの場合でも別ものとして扱われるらしい。
同一ユーザーであれば、scriptをアドオン化してしまえば複数ドキュメントで利用してもこのscriptは同じプロジェクトになるのでトリガーが共有される。