スプレッドシートとGASファイルで自動メール送信システムを開発しておりました。
機能としましては、複数人で共有している人達で、タスクをスプレッドシートで管理して、タスクの有効期限を超えると登録しているアドレスにメールを送信するというものです。
はじめは、自分でメール送信のトリガーをセットして使えればいいと思っていたのですが、このスプレッドシートをテンプレート化して、他の人達でも使えるようにしようとした時に、トリガーの設置ですごく悩みました。
#やりたいこと
一つのプロジェクト(一つのGASファイル)に対して一回のタイムベースのトリガーをセットすることです。
#実際に試したこと
スプレッドシートに送信トリガーボタン(画像を挿入してsetTrigger()を割り当て)を設置して
// 現在セットされているトリガーが0個なら、newTrigger()を実行してトリガーをセット // 【セットトリガー】 function setTrigger() { if (ScriptApp.getProjectTriggers().length === 0) { return newTrigger(); } } // 【メール送信トリガーセット】 function newTrigger() { ScriptApp.newTrigger('sendMail') .timeBased() .atHour(9) // 朝9時頃 .everyDays(1) // 毎日 .create(); } function sendMail() { GmailApp.sendEmail('メールアドレス', 'メール件名', 'メール本文'); }
上記スクリプトを実行してトリガーをセットしようと考えました。
しかし、トリガーはプロジェクトに紐づくというより、ユーザー紐づいているみたいで、ユーザー全員がトリガーをセット出来てしまう状態になってしまいました。
どうにか一回だけトリガーをセットしたいのですが、
アドバイをお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/20 10:23 編集
2017/06/20 14:38
2017/06/21 02:35 編集