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

質問編集履歴

2

リンク挿入

2020/12/27 04:43

投稿

217ext
217ext

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- LINEbotでおみくじ こちらのサイト( http://gilmon.hatenablog.com/entry/2017/01/04/224827 )を参考にLINEbotでおみくじに挑戦してみたのですが、
3
+ LINEbotでおみくじ こちらのサイト( [http://gilmon.hatenablog.com/entry/2017/01/04/224827](http://gilmon.hatenablog.com/entry/2017/01/04/224827) )を参考にLINEbotでおみくじに挑戦してみたのですが、
4
4
  GASのほうで「TypeError: Cannot read property 'postData' of undefined doPost @ コード.gs:6 」というエラーがでます。
5
5
 
6
6
  スクリプトの 「 var events = JSON.parse(e.postData.contents).events;」 この部分がエラーになるみたいです。

1

コードの記入

2020/12/27 04:43

投稿

217ext
217ext

スコア0

title CHANGED
File without changes
body CHANGED
@@ -6,8 +6,75 @@
6
6
  スクリプトの 「 var events = JSON.parse(e.postData.contents).events;」 この部分がエラーになるみたいです。
7
7
 
8
8
 
9
- 記事が3年前なのもあり情報が古いのか、なにか変更間違えているのかどうすればいいのかわかりません。 記事のスクリプトの中で変更したのは、各種画像のURLと一番最初のChannel Access Tokenだけです。ほかにも変更する場所があるのでしょうか。 有識者の方、お力を貸していただけませんか。 よろしくお願いします
9
+ 記事が3年前なのもあり情報が古いのか、なにか変更間違えているのかどうすればいいのかわかりません。 記事のスクリプトの中で変更したのは、各種画像のURLと一番最初のChannel Access Tokenだけです。ほかにも変更する場所があるのでしょうか。 有識者の方、お力を貸していただけませんか。 よろしくお願いします
10
10
 
11
+ ###コード####
12
+ ```
13
+ // LINE Developers の Channel Access Tokenを設定
14
+ var channel_access_token = "トークン";
15
+
16
+ // LINEから呼ばれる関数
17
+ function doPost(e) {
18
+ var events = JSON.parse(e.postData.contents).events;
19
+ events.forEach(function(event) {
20
+ if(event.type == "message"){
21
+ lineReply(event);
22
+ }
23
+ });
24
+ }
25
+ // LINEへの返信
26
+ function lineReply(e) {
27
+ var repMes = replyMessage(e);
28
+ var postData = {
29
+ "replyToken" : e.replyToken,
30
+ "messages" : repMes
31
+ };
32
+ var options = {
33
+ "method" : "post",
34
+ "headers" : {
35
+ "Content-Type" : "application/json",
36
+ "Authorization" : "Bearer " + channel_access_token
37
+ },
38
+ "payload" : JSON.stringify(postData)
39
+ };
40
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
41
+ }
42
+ //返信する画像を準備
43
+ function replyMessage(e) {
44
+ if(e.message.text=="おみくじ"){
45
+ var rand = Math.floor( Math.random() * 4 ) +1;
46
+ var imageurl;
47
+ switch (rand) {
48
+ case 1:
49
+ //大吉
50
+ imageurl="画像"
51
+ break;
52
+ case 2:
53
+ //中吉
54
+ imageurl="画像"
55
+ break;
56
+ case 3:
57
+ //吉
58
+ imageurl="画像"
59
+ break;
60
+ case 4:
61
+ //小吉
62
+ imageurl="画像"
63
+ break;
64
+ }
65
+ var repMes=[
66
+ {
67
+ "type" : "image",
68
+ "originalContentUrl" : imageurl,
69
+ "previewImageUrl" : imageurl
70
+ }
71
+ ];
72
+ return(repMes)
73
+ }
74
+ };
75
+
76
+ ```
77
+
11
78
  ### 発生している問題・エラーメッセージ
12
79
 
13
80
  ```