質問編集履歴

2

個人情報の修正

2019/03/18 05:58

投稿

maitohan
maitohan

スコア14

test CHANGED
File without changes
test CHANGED
@@ -234,7 +234,7 @@
234
234
 
235
235
 
236
236
 
237
- var url = "https://maitohan88.slack.com/messages/CGXNS96LQ";
237
+ var url = "https://***************/messages/CGXNS96LQ";
238
238
 
239
239
  var options = {
240
240
 

1

全コードを記載しました。

2019/03/18 05:58

投稿

maitohan
maitohan

スコア14

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,145 @@
32
32
 
33
33
 
34
34
 
35
+ /* カレンダーへイベントを登録する */
36
+
37
+ function getsheet() {
38
+
39
+ /*-前準備-*/
40
+
41
+
42
+
43
+    //シートの項目を以下変数定義
44
+
45
+      var sht, i, eventday, eventname, place,start, end, added, addedslack;
46
+
47
+
48
+
49
+    //shtを定義
50
+
51
+     sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("カレンダー");
52
+
53
+
54
+
55
+    //シートの2行目〜最終行まで処理を繰り返す
56
+
57
+     for(i = 2; i <= sht.getLastRow(); i++) {
58
+
59
+
60
+
61
+ /*-前準備ここまで-*/
62
+
63
+
64
+
65
+
66
+
67
+ /*--スプレッドシートの値を取得して変数へ格納--*/
68
+
69
+
70
+
71
+ //i行1列目の値(イベント日)をeventdayへ格納
72
+
73
+  eventday = sht.getRange(i, 1).getValue();
74
+
75
+
76
+
77
+ //開始日をUtilities.formatDateでフォーマットしてbへ格納
78
+
79
+  var b = Utilities.formatDate(eventday,"JST","yyyy/MM/dd");
80
+
81
+
82
+
83
+ //i行2列目の値(イベントの名前)をeventnameへ格納
84
+
85
+  eventname = sht.getRange(i,2).getValue();
86
+
87
+
88
+
89
+ //i行3列目の値(イベントの場所)をplaceへ格納
90
+
91
+  place = sht.getRange(i,3).getValue();
92
+
93
+
94
+
95
+ //i行4列目の値(開始時刻)をstartへ格納
96
+
97
+  var starttime = sht.getRange(i,4).getValue();
98
+
99
+
100
+
101
+  var H = starttime.getHours();//starttimeの時間を取得してHへ格納
102
+
103
+  var M = starttime.getMinutes();//starttimeの時間を取得してMへ格納
104
+
105
+  
106
+
107
+ //new Dateメソッドで開始日時「yyMMdd hh:mm」をstartへ格納
108
+
109
+  var start = new Date(b+" "+H+":"+M); 
110
+
111
+
112
+
113
+ //i行5列目の値(終了時刻)をendへ格納
114
+
115
+  var endtime = sht.getRange(i,5).getValue();
116
+
117
+
118
+
119
+  var H1 = endtime.getHours();//endtimeの時間を取得してH1へ格納
120
+
121
+  var M1 = endtime.getMinutes();//endtimeの分を取得してM1へ格納
122
+
123
+  
124
+
125
+ //new Dateメソッドで終了日時「yyMMdd hh:mm」をendへ格納
126
+
127
+  var end = new Date(b+" "+H1+":"+M1);
128
+
129
+
130
+
131
+
132
+
133
+ /*--カレンダーへ登録--*/
134
+
135
+
136
+
137
+ //i行6列目の値(イベント登録有無)をaddedへ格納
138
+
139
+  added = sht.getRange(i,6).getValue();
140
+
141
+
142
+
143
+ //addedの値が空白だったらカレンダー登録を実行
144
+
145
+  if(added == "") {
146
+
147
+   Cal = CalendarApp.getCalendarById('*******@*****.com');//<---ここを自分のgmailアドレス入れてます
148
+
149
+
150
+
151
+ //指定のカレンダーIDへイベント登録
152
+
153
+   Cal.createEvent(eventname,start,end,{location:place});//createEvent(タイトル、開始日時、終了日時、オプション)
154
+
155
+
156
+
157
+ //カレンダー登録が終わったイベントのaddedへ「登録完了」を記入
158
+
159
+  sht.getRange(i,6).setValue("登録完了");
160
+
161
+
162
+
163
+   }   //ifを閉じる
164
+
165
+  }      //forを閉じる
166
+
167
+ }        //functionを閉じる
168
+
169
+
170
+
171
+
172
+
35
- var token = 'xoxp-378845188965-378482081860-579451696117-24eb2e744010447a2c24d2851bf12224';
173
+ var token = 'xoxp-378845188965-378482081860-579451696117-24eb2*******************';
36
174
 
37
175
 
38
176
 
@@ -42,23 +180,25 @@
42
180
 
43
181
 
44
182
 
183
+ // slackのチャンネル指定
184
+
45
185
  var channel = PropertiesService.getScriptProperties().getProperty('お休み連絡網');
46
186
 
47
187
 
48
188
 
49
- // slack送信時のタイトル
189
+ // slack送信時のタイトルを入れておく
50
190
 
51
191
  var bot_title = 'お休み申請';
52
192
 
53
193
 
54
194
 
55
- // slack送信時の画像URL
195
+ // slack送信時の画像URLを入れておく(「FLAT ICON DESIGN」さんの画像をアイコンとして利用しています)
56
196
 
57
197
  var icon_url = 'http://flat-icon-design.com/f/f_object_100/s512_f_object_100_0bg.png';
58
198
 
59
199
 
60
200
 
61
- // slackを送る関数
201
+ // slackを送る関数を作る(トリガーから実行時間を指定)
62
202
 
63
203
  sht = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("カレンダー");
64
204
 
@@ -78,30 +218,50 @@
78
218
 
79
219
 
80
220
 
81
- function send_slack() {
221
+ function postSlack(text) {
82
222
 
83
223
  getsheet() ;
84
224
 
85
225
 
86
226
 
227
+
228
+
87
229
  // もしaddedslackが空白だったら
88
230
 
89
231
  if(addedslack == "") {
90
232
 
91
233
  // my_slackbotにメッセージを送信する
92
234
 
235
+
236
+
237
+ var url = "https://maitohan88.slack.com/messages/CGXNS96LQ";
238
+
239
+ var options = {
240
+
93
- slackApp.postMessage(channel, b+name+"いただきます!",
241
+ "method" : "POST",
94
-
95
- {
242
+
96
-
97
- username : bot_title,
243
+ "headers": {"Content-type": "application/json"},
98
-
244
+
99
- icon_url : icon_url
245
+ "payload" : '{"text":"' + text + '"}'
100
-
246
+
101
- });
247
+ };
248
+
102
-
249
+ UrlFetchApp.fetch(url, options);
250
+
251
+ }
252
+
253
+
254
+
255
+ function test(){
256
+
257
+ postSlack(b+name+"いただきます!");
258
+
259
+ }
260
+
261
+
262
+
103
- sht.getRange(i-1,7).setValue("Slack投稿完了");
263
+ sht.getRange(i-1,7).setValue("Slack投稿完了");
104
264
 
105
265
  }
106
266
 
107
- }}
267
+ }