質問編集履歴
2
個人情報の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -234,7 +234,7 @@
|
|
234
234
|
|
235
235
|
|
236
236
|
|
237
|
-
var url = "https://
|
237
|
+
var url = "https://***************/messages/CGXNS96LQ";
|
238
238
|
|
239
239
|
var options = {
|
240
240
|
|
1
全コードを記載しました。
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-24eb2
|
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 s
|
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
|
-
|
241
|
+
"method" : "POST",
|
94
|
-
|
95
|
-
|
242
|
+
|
96
|
-
|
97
|
-
|
243
|
+
"headers": {"Content-type": "application/json"},
|
98
|
-
|
244
|
+
|
99
|
-
|
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
|
+
}
|