-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.gs
70 lines (60 loc) · 2.55 KB
/
main.gs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
function myFunction(e){
//初期設定
var itemResponses = e.response.getItemResponses();
var message = '';
//入力項目の解析
for (var i = 0; i < itemResponses.length; i++) {
var itemResponse = itemResponses[i];
var question = itemResponse.getItem().getTitle();
var answer = itemResponse.getResponse();
if(question=="勉強会名"){
var cTitle=answer;
}else if(question=="概要"){
message=answer;
}else if(question=="日程"){
var cDate=answer.replace(/-/g,'/');
var cEDate=cDate;
}else if(question=="開始時刻"){
var cDate=cDate + " " + answer;
}else if(question=="終了時刻"){
var cEDate=cEDate + " " + answer;
}else if(question=="主催者TwitterID"){
message += "\n\n主催者Twitter: " + answer
}else if(question=="場所 (clsuter.の場合はルームURLも)"){
message += "\n\n場所: " + answer
}
}
//スプレッドシート生成
var spreadsheetId = PropertiesService.getScriptProperties().getProperty('SPREADSHEET_ID');
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var spreadsheetId = spreadsheet.getId();
var file = DriveApp.getFileById(spreadsheetId);
var copyFile = file.makeCopy("「" + cTitle + "」に出席する " + new Date().getTime());
// スプレッドシートにpublic権限付与
copyFile.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.EDIT)
var url = copyFile.getUrl();
// スプレッドシートのURLをカレンダーの詳細に追加
message += "\n\n出席する: " + url
//Googleカレンダーへの投稿
var calenderId = PropertiesService.getScriptProperties().getProperty('CALENDAR_ID');
var objCalendar = CalendarApp.getCalendarById(calenderId);
var objEvent = objCalendar.createEvent(cTitle,new Date(cDate),new Date(cEDate),{description:message}).setGuestsCanSeeGuests(false);
// Discordへ通知
var webHookURL = PropertiesService.getScriptProperties().getProperty('DISCORD_URL');
var payload = {
"content": cDate + " 開催の「" + cTitle + "」が企画されました!!\n\n" + message
}
var options = {
"muteHttpExceptions" : true,
"method" : "POST",
"payload": payload
}
var response = UrlFetchApp.fetch(webHookURL, options);
var responseCode = response.getResponseCode();
var responseBody = response.getContentText();
if (responseCode === 200) {
var responseJson = JSON.parse(responseBody);
} else {
Logger.log(Utilities.formatString("Request failed. Expected 200, got %d: %s", responseCode, responseBody));
}
}