teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

誤字

2017/06/20 09:15

投稿

kaoru3151
kaoru3151

スコア50

title CHANGED
File without changes
body CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
  #実際に試したこと
11
11
 
12
- スプレッドシートに送信トリガーボタン(画像を挿入してsetTrigger()を割り当て)を設置して
12
+ スプレッドシートに送信トリガーボタン(画像を挿入してsetTrigger()を割り当て)を設置して
13
13
 
14
14
 
15
15
  ```
@@ -40,7 +40,7 @@
40
40
  上記スクリプトを実行してトリガーをセットしようと考えました。
41
41
 
42
42
 
43
- しかし、トリガーはプロジェクトに紐づくというより、ユーザー紐づいいるみたいで、ユーザー全員がトリガーをセット出来てしまう状態になってしまいました。
43
+ しかし、トリガーはプロジェクトに紐づくというより、ユーザー紐づいいるみたいで、ユーザー全員がトリガーをセット出来てしまう状態になってしまいました。
44
44
 
45
45
  どうにか一回だけトリガーをセットしたいのですが、
46
46
  アドバイをお願いします。

1

文法修正

2017/06/20 09:14

投稿

kaoru3151
kaoru3151

スコア50

title CHANGED
File without changes
body CHANGED
@@ -4,18 +4,26 @@
4
4
 
5
5
  はじめは、自分でメール送信のトリガーをセットして使えればいいと思っていたのですが、このスプレッドシートをテンプレート化して、他の人達でも使えるようにしようとした時に、トリガーの設置ですごく悩みました。
6
6
 
7
+ #やりたいこと
7
- レッドシートに送信トリガーボタン設置して(画像を挿入してsetTrigger())、
8
+ 一つのロジェク(一つのGASファイル)対して一回のタイムベースのトリガーをセットすることです。
8
9
 
10
+ #実際に試したこと
11
+
12
+ スプレッドシートに送信トリガーボタン(画像を挿入してsetTrigger()を割り当て)を設置して、
13
+
14
+
9
15
  ```
16
+ // 現在セットされているトリガーが0個なら、newTrigger()を実行してトリガーをセット
17
+
18
+ // 【セットトリガー】
10
- function getTriggers() {
19
+ function setTrigger() {
11
- ScriptApp.getProjectTriggers();
20
+ if (ScriptApp.getProjectTriggers().length === 0) {
21
+ return newTrigger();
22
+ }
12
23
  }
13
24
 
14
- ```
15
- 現在のトリガーを確認して、すでにトリガーセットされているなら、setTrigger()を実行しない
16
- ```
17
- // 【メール送信トリガーセット】(毎朝9時頃にメール送信)
25
+ // 【メール送信トリガーセット】
18
- function setTrigger() {
26
+ function newTrigger() {
19
27
  ScriptApp.newTrigger('sendMail')
20
28
  .timeBased()
21
29
  .atHour(9) // 朝9時頃
@@ -27,4 +35,12 @@
27
35
  GmailApp.sendEmail('メールアドレス', 'メール件名', 'メール本文');
28
36
  }
29
37
 
30
- ```
38
+ ```
39
+
40
+ 上記スクリプトを実行してトリガーをセットしようと考えました。
41
+
42
+
43
+ しかし、トリガーはプロジェクトに紐づくというより、ユーザー紐づいいるみたいで、ユーザー全員がトリガーをセット出来てしまう状態になってしまいました。
44
+
45
+ どうにか一回だけトリガーをセットしたいのですが、
46
+ アドバイをお願いします。