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

質問編集履歴

2

if,dopostの複数あったことを直しました。

2019/06/09 14:11

投稿

kinakosonsi
kinakosonsi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -203,4 +203,111 @@
203
203
  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
204
204
  }
205
205
 
206
+ ```
207
+
208
+
209
+
210
+
211
+
212
+ ```
213
+ var CHANNEL_ACCESS_TOKEN = "アクセストークン";
214
+ var simple_wikipedia_api = 'http://wikipedia.simpleapi.net/api';
215
+ function doPost(e) {
216
+ var contents = e.postData.contents;
217
+ var obj = JSON.parse(contents);
218
+ var events = obj["events"];
219
+ for (var i = 0; i < events.length; i++) {
220
+ if (events[i].type == "message") {
221
+ reply_message(events[i]);
222
+ }
223
+ }
224
+ }
225
+
226
+ function reply_message(e) {
227
+ if (e.message.type == "text") {
228
+ var input_text = e.message.text;
229
+ var reply_text = "";
230
+ if (input_text == "/help") {
231
+ reply_text = "こちらはhelpです。使い方の説明をします。『調べたい単語+とは』と送信してください。";
232
+ } else if (input_text == "おはよう") {
233
+ reply_text = "おはようございます";
234
+ }
235
+
236
+
237
+
238
+ {
239
+ var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
240
+ if (typeof reply_token === 'undefined') {
241
+ return;
242
+ }
243
+
244
+ var user_message = JSON.parse(e.postData.contents).events[0].message.text;
245
+
246
+ var reply_messages = ['wikiに登録されてないよ!!(´;ω;`)'];
247
+ if (/とは??$/.test(user_message)) {
248
+ var q = user_message.match(/(.*)とは??$/)[1];
249
+ var url_and_body = getWikipediaUrlAndBody(q);
250
+ if (url_and_body !== null) {
251
+ reply_messages = [
252
+ '「' + q + '」' + 'について調べるよ!!',
253
+ url_and_body.body.substr(0, 140) + '...',
254
+ '長いからこの先は下記からどうぞ(˘ω˘)',
255
+ url_and_body.url,
256
+ ];
257
+ }
258
+ }
259
+
260
+ var messages = reply_messages.map(function (v) {
261
+ return {'type': 'text', 'text': v};
262
+ });
263
+
264
+ UrlFetchApp.fetch(line_endpoint, {
265
+ 'headers': {
266
+ 'Content-Type': 'application/json; charset=UTF-8',
267
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
268
+ },
269
+ 'method': 'post',
270
+ 'payload': JSON.stringify({
271
+ 'replyToken': reply_token,
272
+ 'messages': messages,
273
+ }),
274
+ });
275
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
276
+ }
277
+
278
+ function getWikipediaUrlAndBody(q) {
279
+ var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
280
+ var res = JSON.parse(UrlFetchApp.fetch(url));
281
+ if (res !== null) {
282
+ return {'url': res[0].url,'body': res[0].body};
283
+ } else {
284
+ return null;
285
+ }
286
+
287
+
288
+
289
+
290
+
291
+ var postData = {
292
+ "replyToken": e.replyToken,
293
+ "messages": [{
294
+ "type": "text",
295
+ "text": reply_text
296
+ }]
297
+ };
298
+
299
+ var options = {
300
+ "method": "post",
301
+ "headers": {
302
+ "Content-Type": "application/json",
303
+ "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
304
+ },
305
+ "payload": JSON.stringify(postData)
306
+ };
307
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
308
+ }
309
+ }
310
+ }
311
+
312
+
206
313
  ```

1

else ifがいらないかと思いなくしてみました

2019/06/09 14:11

投稿

kinakosonsi
kinakosonsi

スコア15

title CHANGED
File without changes
body CHANGED
@@ -101,4 +101,106 @@
101
101
  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
102
102
  }
103
103
 
104
+ ```
105
+
106
+
107
+
108
+ else ifはいらないと思いなくしてみました
109
+
110
+ ```var CHANNEL_ACCESS_TOKEN = "v3+k8BLGYRRUFu5fxKoBqr+v2r58EsONpWKH+BlL4PA8Q+IHeLkAS2WSCQOQRmuWvx1FKegJbZ7P/ZQ61Bs6HEoKpTu3p7tpIVTokFRe2HRslHO6aOERLEj+BXma1jWG1MMtcVEhfd2vdJA8fddH0gdB04t89/1O/w1cDnyilFU=";
111
+ var simple_wikipedia_api = 'http://wikipedia.simpleapi.net/api';
112
+ function doPost(e) {
113
+ var contents = e.postData.contents;
114
+ var obj = JSON.parse(contents);
115
+ var events = obj["events"];
116
+ for (var i = 0; i < events.length; i++) {
117
+ if (events[i].type == "message") {
118
+ reply_message(events[i]);
119
+ }
120
+ }
121
+ }
122
+
123
+ function reply_message(e) {
124
+ if (e.message.type == "text") {
125
+ var input_text = e.message.text;
126
+ var reply_text = "";
127
+ if (input_text == "/help") {
128
+ reply_text = "こちらはhelpです。使い方の説明をします。『調べたい単語+とは』と送信してください。";
129
+ } else if (input_text == "おはよう") {
130
+ reply_text = "おはようございます";
131
+ }
132
+
133
+
134
+
135
+ function doPost(e) {
136
+ var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
137
+ if (typeof reply_token === 'undefined') {
138
+ return;
139
+ }
140
+ var user_message = JSON.parse(e.postData.contents).events[0].message.text;
141
+
142
+ var reply_messages = ['wikiに登録されてないよ!!(´;ω;`)'];
143
+ if (/とは??$/.test(user_message)) {
144
+ var q = user_message.match(/(.*)とは??$/)[1];
145
+ var url_and_body = getWikipediaUrlAndBody(q);
146
+ if (url_and_body !== null) {
147
+ reply_messages = [
148
+ '「' + q + '」' + 'について調べるよ!!',
149
+ url_and_body.body.substr(0, 140) + '...',
150
+ '長いからこの先は下記からどうぞ(˘ω˘)',
151
+ url_and_body.url,
152
+ ];
153
+ }
154
+ }
155
+
156
+ var messages = reply_messages.map(function (v) {
157
+ return {'type': 'text', 'text': v};
158
+ });
159
+
160
+ UrlFetchApp.fetch(line_endpoint, {
161
+ 'headers': {
162
+ 'Content-Type': 'application/json; charset=UTF-8',
163
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
164
+ },
165
+ 'method': 'post',
166
+ 'payload': JSON.stringify({
167
+ 'replyToken': reply_token,
168
+ 'messages': messages,
169
+ }),
170
+ });
171
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
172
+ }
173
+
174
+ function getWikipediaUrlAndBody(q) {
175
+ var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
176
+ var res = JSON.parse(UrlFetchApp.fetch(url));
177
+ if (res !== null) {
178
+ return {'url': res[0].url,'body': res[0].body};
179
+ } else {
180
+ return null;
181
+ }
182
+ }
183
+
184
+
185
+
186
+
187
+ var postData = {
188
+ "replyToken": e.replyToken,
189
+ "messages": [{
190
+ "type": "text",
191
+ "text": reply_text
192
+ }]
193
+ };
194
+ }
195
+ var options = {
196
+ "method": "post",
197
+ "headers": {
198
+ "Content-Type": "application/json",
199
+ "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
200
+ },
201
+ "payload": JSON.stringify(postData)
202
+ };
203
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
204
+ }
205
+
104
206
  ```