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

質問編集履歴

2

文言修正

2021/08/17 02:22

投稿

SA-KYO
SA-KYO

スコア37

title CHANGED
@@ -1,1 +1,1 @@
1
- 【お力を貸してください????‍♂️】【お願いします????‍♂️】時間指定なしのLINEBOTをGASで作成中です????
1
+ 時間指定なしのLINEBOTをGASで作成中です????
body CHANGED
@@ -17,47 +17,8 @@
17
17
  ### 該当のソースコード
18
18
 
19
19
  ```ここに言語名を入力
20
- var CHANNEL_ACCESS_TOKEN = "アクセストークン";
21
- var dateExp = /(\d+)[/月](\d+)/;
22
20
 
23
- //doPost関数(Lineからメッセージを受け取る)
24
- function doPost(e) {
25
- GetMessage(e);
26
- }
27
21
 
28
- //受け取ったメッセージの処理
29
- function GetMessage(e) {
30
- var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
31
- if (typeof replyToken === 'undefined') {
32
- return;
33
- }
34
- var messageText = JSON.parse(e.postData.contents).events[0].message.text;
35
- var cache = CacheService.getScriptCache();
36
- var type = cache.get("type");
37
-
38
- if (type === null) {
39
- //予定の追加
40
- if (messageText === "予定の追加") {
41
- cache.put("type", 1);
42
- //開始日時の質問
43
- replyPlans(replyToken, "予定日をいずれかの形式で教えてください。", "【06/18】", "【6月18日】などの形式なら大丈夫です!");
44
- //今日、7日間の予定の取得
45
- } else if (messageText.match("今日の予定")) {
46
- reply(replyToken, getEvents());
47
- } else if (messageText.match("今週の予定")) {
48
- reply(replyToken, notifyWeekly());
49
- } else {
50
- //処理方法の返答
51
- replyPlans(replyToken, "「予定の追加」で予定追加します", "「今日の予定」で今日の予定をお知らせします。", "「今週の予定」で7日間の予定をお知らせします。");
52
- }
53
- } else {
54
- //キャンセル処理
55
- if (messageText === "キャンセル") {
56
- cache.remove("type");
57
- reply(replyToken, "予定追加のキャンセルをしました");
58
- return;
59
- }
60
-
61
22
  switch(type) {
62
23
  case "1":
63
24
  // 開始日時の追加
@@ -95,136 +56,7 @@
95
56
  cache.put("title", messageText);
96
57
  var [title, startDate] = createData(cache);
97
58
  //予定追加の確認
98
- replyPlans(replyToken, "予定名:" + title, "開始日時:\n" + EventFormat(startDate)+ "予定を追加しますか?\n 「はい」か「いいえ」でお知らせください。");
59
+ replyPlans(replyToken, "予定名:" + title, "開始日時:\n" + EventFormat(startDate)+ "予定を追加しますか?\n 「はい」か「いいえ」で
99
- break;
100
- case "4":
101
- if (messageText === "はい") {
102
- cache.remove("type");
103
- var [title, startDate] = createData(cache);
104
- CalendarApp.getDefaultCalendar().createEvent(title, startDate);
105
- reply(replyToken, "Googleカレンダーに予定を追加しました");
106
- } else if (messageText === "いいえ") {
107
- cache.remove("type");
108
- reply(replyToken, "予定の追加をキャンセルしました。");
109
- } else{
110
- reply(replyToken, "「はい」か「いいで」でお答えください。");
111
- break;
112
- }
113
- break;
114
-
115
-
116
- }
117
- }
118
- }
119
-
120
- function createData(cache) {
121
- var year = new Date().getFullYear();
122
- //var year = 2020;
123
- var title = cache.get("title");
124
- var startDate = new Date(year, cache.get("start_month") - 1, cache.get("start_day"));
125
- return [title, startDate];
126
- }
127
-
128
- function EventFormat(Date) {
129
- var y = Date.getFullYear();
130
- var m = Date.getMonth() + 1;
131
- var d = Date.getDate();
132
- var w = Date.getDay();
133
- var weekname = ['日', '月', '火', '水', '木', '金', '土'];
134
- m = ('0' + m).slice(-2);
135
- d = ('0' + d).slice(-2);
136
- return y + '年' + m + '月' + d + '日 (' + weekname[w] + ')\n';
137
- }
138
-
139
- function replyPlans(replyToken, message, message2, message3) {
140
- var url = "https://api.line.me/v2/bot/message/reply";
141
- UrlFetchApp.fetch(url, {
142
- "headers": {
143
- "Content-Type": "application/json; charset=UTF-8",
144
- "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN,
145
- },
146
- "method": "post",
147
- "payload": JSON.stringify({
148
- "replyToken": replyToken,
149
- "messages": [{
150
- "type": "text",
151
- "text": message,
152
- },{
153
- "type": "text",
154
- "text": message2,
155
- },{
156
- "type": "text",
157
- "text": message3,
158
- }],
159
- }),
160
- });
161
- return ContentService.createTextOutput(JSON.stringify({"content": "post ok"})).setMimeType(ContentService.MimeType.JSON);
162
- }
163
-
164
- function reply(replyToken, message) {
165
- var url = "https://api.line.me/v2/bot/message/reply";
166
- UrlFetchApp.fetch(url, {
167
- "headers": {
168
- "Content-Type": "application/json; charset=UTF-8",
169
- "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN,
170
- },
171
- "method": "post",
172
- "payload": JSON.stringify({
173
- "replyToken": replyToken,
174
- "messages": [{
175
- "type": "text",
176
- "text": message,
177
- }],
178
- }),
179
- });
180
- return ContentService.createTextOutput(JSON.stringify({"content": "post ok"})).setMimeType(ContentService.MimeType.JSON);
181
- }
182
-
183
- //今日の予定
184
- function getEvents() {
185
- var events = CalendarApp.getDefaultCalendar().getEventsForDay(new Date());
186
- var body = "今日の予定は";
187
-
188
- if (events.length === 0) {
189
- body += "ありません。";
190
- return body;
191
- }
192
-
193
- body += "\n";
194
- events.forEach(function(event) {
195
- var title = event.getTitle();
196
- body += "★" + title + "\n";
197
- });
198
- body += "です。";
199
- return body;
200
- }
201
-
202
- //7日間の予定
203
- function notifyWeekly() {
204
- var body = "7日間の予定は\n";
205
- var weekday = ["日", "月", "火", "水", "木", "金", "土"];
206
- for ( var i = 0; i < 7; i++ ) {
207
-
208
- var dt = new Date();
209
- dt.setDate(dt.getDate()+i);
210
- var events = CalendarApp.getDefaultCalendar().getEventsForDay(dt);
211
- body += Utilities.formatDate(dt, "JST", '★ MM/dd(' + weekday[dt.getDay()] + ')') + "\n";
212
- if (events.length === 0) {
213
- body += "ありません。\n";
214
- }
215
-
216
- events.forEach(function(event) {
217
- var title = event.getTitle();
218
- body += title + "\n";
219
- });
220
- }
221
- return body;
222
- }
223
-
224
- function HmFormat(date){
225
- return Utilities.formatDate(date, "JST", "HH:mm");
226
- }
227
-
228
60
  ```
229
61
 
230
62
  ### 試したこと

1

文言変更

2021/08/17 02:22

投稿

SA-KYO
SA-KYO

スコア37

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,8 @@
6
6
  時間指定なしのBOTが作りたいのですが
7
7
  試行錯誤して試してもできません、、、
8
8
 
9
+ 具体的にご回答いただけると助かります、、、、、、、
10
+
9
11
  ### 発生している問題・エラーメッセージ
10
12
 
11
13
  ```