質問編集履歴

2

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

2019/06/09 14:11

投稿

kinakosonsi
kinakosonsi

スコア15

test CHANGED
File without changes
test CHANGED
@@ -409,3 +409,217 @@
409
409
 
410
410
 
411
411
  ```
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+ ```
424
+
425
+ var CHANNEL_ACCESS_TOKEN = "アクセストークン";
426
+
427
+ var simple_wikipedia_api = 'http://wikipedia.simpleapi.net/api';
428
+
429
+ function doPost(e) {
430
+
431
+ var contents = e.postData.contents;
432
+
433
+ var obj = JSON.parse(contents);
434
+
435
+ var events = obj["events"];
436
+
437
+ for (var i = 0; i < events.length; i++) {
438
+
439
+ if (events[i].type == "message") {
440
+
441
+ reply_message(events[i]);
442
+
443
+ }
444
+
445
+ }
446
+
447
+ }
448
+
449
+
450
+
451
+ function reply_message(e) {
452
+
453
+ if (e.message.type == "text") {
454
+
455
+ var input_text = e.message.text;
456
+
457
+ var reply_text = "";
458
+
459
+ if (input_text == "/help") {
460
+
461
+ reply_text = "こちらはhelpです。使い方の説明をします。『調べたい単語+とは』と送信してください。";
462
+
463
+ } else if (input_text == "おはよう") {
464
+
465
+ reply_text = "おはようございます";
466
+
467
+ }
468
+
469
+
470
+
471
+
472
+
473
+
474
+
475
+ {
476
+
477
+ var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
478
+
479
+ if (typeof reply_token === 'undefined') {
480
+
481
+ return;
482
+
483
+ }
484
+
485
+
486
+
487
+ var user_message = JSON.parse(e.postData.contents).events[0].message.text;
488
+
489
+
490
+
491
+ var reply_messages = ['wikiに登録されてないよ!!(´;ω;`)'];
492
+
493
+ if (/とは??$/.test(user_message)) {
494
+
495
+ var q = user_message.match(/(.*)とは??$/)[1];
496
+
497
+ var url_and_body = getWikipediaUrlAndBody(q);
498
+
499
+ if (url_and_body !== null) {
500
+
501
+ reply_messages = [
502
+
503
+ '「' + q + '」' + 'について調べるよ!!',
504
+
505
+ url_and_body.body.substr(0, 140) + '...',
506
+
507
+ '長いからこの先は下記からどうぞ(˘ω˘)',
508
+
509
+ url_and_body.url,
510
+
511
+ ];
512
+
513
+ }
514
+
515
+ }
516
+
517
+
518
+
519
+ var messages = reply_messages.map(function (v) {
520
+
521
+ return {'type': 'text', 'text': v};
522
+
523
+ });
524
+
525
+
526
+
527
+ UrlFetchApp.fetch(line_endpoint, {
528
+
529
+ 'headers': {
530
+
531
+ 'Content-Type': 'application/json; charset=UTF-8',
532
+
533
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
534
+
535
+ },
536
+
537
+ 'method': 'post',
538
+
539
+ 'payload': JSON.stringify({
540
+
541
+ 'replyToken': reply_token,
542
+
543
+ 'messages': messages,
544
+
545
+ }),
546
+
547
+ });
548
+
549
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
550
+
551
+ }
552
+
553
+
554
+
555
+ function getWikipediaUrlAndBody(q) {
556
+
557
+ var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
558
+
559
+ var res = JSON.parse(UrlFetchApp.fetch(url));
560
+
561
+ if (res !== null) {
562
+
563
+ return {'url': res[0].url,'body': res[0].body};
564
+
565
+ } else {
566
+
567
+ return null;
568
+
569
+ }
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+ var postData = {
582
+
583
+ "replyToken": e.replyToken,
584
+
585
+ "messages": [{
586
+
587
+ "type": "text",
588
+
589
+ "text": reply_text
590
+
591
+ }]
592
+
593
+ };
594
+
595
+
596
+
597
+ var options = {
598
+
599
+ "method": "post",
600
+
601
+ "headers": {
602
+
603
+ "Content-Type": "application/json",
604
+
605
+ "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
606
+
607
+ },
608
+
609
+ "payload": JSON.stringify(postData)
610
+
611
+ };
612
+
613
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
614
+
615
+ }
616
+
617
+ }
618
+
619
+ }
620
+
621
+
622
+
623
+
624
+
625
+ ```

1

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

2019/06/09 14:11

投稿

kinakosonsi
kinakosonsi

スコア15

test CHANGED
File without changes
test CHANGED
@@ -205,3 +205,207 @@
205
205
 
206
206
 
207
207
  ```
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+ else ifはいらないと思いなくしてみました
216
+
217
+
218
+
219
+ ```var CHANNEL_ACCESS_TOKEN = "v3+k8BLGYRRUFu5fxKoBqr+v2r58EsONpWKH+BlL4PA8Q+IHeLkAS2WSCQOQRmuWvx1FKegJbZ7P/ZQ61Bs6HEoKpTu3p7tpIVTokFRe2HRslHO6aOERLEj+BXma1jWG1MMtcVEhfd2vdJA8fddH0gdB04t89/1O/w1cDnyilFU=";
220
+
221
+ var simple_wikipedia_api = 'http://wikipedia.simpleapi.net/api';
222
+
223
+ function doPost(e) {
224
+
225
+ var contents = e.postData.contents;
226
+
227
+ var obj = JSON.parse(contents);
228
+
229
+ var events = obj["events"];
230
+
231
+ for (var i = 0; i < events.length; i++) {
232
+
233
+ if (events[i].type == "message") {
234
+
235
+ reply_message(events[i]);
236
+
237
+ }
238
+
239
+ }
240
+
241
+ }
242
+
243
+
244
+
245
+ function reply_message(e) {
246
+
247
+ if (e.message.type == "text") {
248
+
249
+ var input_text = e.message.text;
250
+
251
+ var reply_text = "";
252
+
253
+ if (input_text == "/help") {
254
+
255
+ reply_text = "こちらはhelpです。使い方の説明をします。『調べたい単語+とは』と送信してください。";
256
+
257
+ } else if (input_text == "おはよう") {
258
+
259
+ reply_text = "おはようございます";
260
+
261
+ }
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+ function doPost(e) {
270
+
271
+ var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
272
+
273
+ if (typeof reply_token === 'undefined') {
274
+
275
+ return;
276
+
277
+ }
278
+
279
+ var user_message = JSON.parse(e.postData.contents).events[0].message.text;
280
+
281
+
282
+
283
+ var reply_messages = ['wikiに登録されてないよ!!(´;ω;`)'];
284
+
285
+ if (/とは??$/.test(user_message)) {
286
+
287
+ var q = user_message.match(/(.*)とは??$/)[1];
288
+
289
+ var url_and_body = getWikipediaUrlAndBody(q);
290
+
291
+ if (url_and_body !== null) {
292
+
293
+ reply_messages = [
294
+
295
+ '「' + q + '」' + 'について調べるよ!!',
296
+
297
+ url_and_body.body.substr(0, 140) + '...',
298
+
299
+ '長いからこの先は下記からどうぞ(˘ω˘)',
300
+
301
+ url_and_body.url,
302
+
303
+ ];
304
+
305
+ }
306
+
307
+ }
308
+
309
+
310
+
311
+ var messages = reply_messages.map(function (v) {
312
+
313
+ return {'type': 'text', 'text': v};
314
+
315
+ });
316
+
317
+
318
+
319
+ UrlFetchApp.fetch(line_endpoint, {
320
+
321
+ 'headers': {
322
+
323
+ 'Content-Type': 'application/json; charset=UTF-8',
324
+
325
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
326
+
327
+ },
328
+
329
+ 'method': 'post',
330
+
331
+ 'payload': JSON.stringify({
332
+
333
+ 'replyToken': reply_token,
334
+
335
+ 'messages': messages,
336
+
337
+ }),
338
+
339
+ });
340
+
341
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
342
+
343
+ }
344
+
345
+
346
+
347
+ function getWikipediaUrlAndBody(q) {
348
+
349
+ var url = simple_wikipedia_api + '?keyword=' + encodeURIComponent(q) + '&output=json';
350
+
351
+ var res = JSON.parse(UrlFetchApp.fetch(url));
352
+
353
+ if (res !== null) {
354
+
355
+ return {'url': res[0].url,'body': res[0].body};
356
+
357
+ } else {
358
+
359
+ return null;
360
+
361
+ }
362
+
363
+ }
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+ var postData = {
374
+
375
+ "replyToken": e.replyToken,
376
+
377
+ "messages": [{
378
+
379
+ "type": "text",
380
+
381
+ "text": reply_text
382
+
383
+ }]
384
+
385
+ };
386
+
387
+ }
388
+
389
+ var options = {
390
+
391
+ "method": "post",
392
+
393
+ "headers": {
394
+
395
+ "Content-Type": "application/json",
396
+
397
+ "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN
398
+
399
+ },
400
+
401
+ "payload": JSON.stringify(postData)
402
+
403
+ };
404
+
405
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
406
+
407
+ }
408
+
409
+
410
+
411
+ ```