Edited at

GASのTriggerのスコープ

More than 1 year has passed since last update.


この話は一体

この記事は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は同じプロジェクトになるのでトリガーが共有される。