質問編集履歴

3

書式の改善

2019/10/09 07:48

投稿

ciipao777
ciipao777

スコア5

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,17 @@
18
18
 
19
19
  GAS上:undefined からプロパティ「postData」を読み取れません。
20
20
 
21
- ※「公開、承認、URL貼り付け」は全て行われております。他に必要な作業はあるのでしょうか?
21
+ ※「公開、承認、URL貼り付け」は全て行われております。
22
+
23
+ 他に必要な作業はあるのでしょうか?
24
+
25
+
26
+
27
+ 又下記のコードはhttps://teratail.com/questions/172080?link=qa_related_pc
28
+
29
+ 上記リンク先のコードを使用しております。
30
+
31
+ ※質問者と回答者のコードを合わせたコード
22
32
 
23
33
  ```
24
34
 
@@ -30,115 +40,125 @@
30
40
 
31
41
  ```ここに言語名を入力
32
42
 
33
- var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
34
-
35
-
36
-
37
- function doPost(e) {
38
-
39
- // JSONをパース
40
-
41
- var json = JSON.parse(e.postData.contents);
42
-
43
-
44
-
45
- // 送信されてきたメッセージを取得
46
-
47
- var user_message = json.events[0].message.text;
48
-
49
-
50
-
51
- // 返信するためのトークンを取得
52
-
53
- var reply_token= json.events[0].replyToken;
54
-
55
- if (typeof reply_token === 'undefined') {
56
-
57
- return;
58
-
59
- }
60
-
61
-
62
-
63
- // 返信するメッセージを配列で用意する
64
-
65
- var reply_messages;
66
-
67
- if ('はい' == user_message) {
68
-
69
- // 「ヘルプ」と入力されたときの返信メッセージ
70
-
71
- reply_messages = ["いいえ?"];
72
-
73
-
74
-
75
- } else if ('元気?' == user_message) {
76
-
77
- //「スプレッドシート」と入力されたときの処理
78
-
79
- reply_messages = ["元気だよ"];
80
-
81
-
82
-
83
- } else if ('何かあったの?' == user_message) {
84
-
85
- //「アイデア」と入力されたときの処理
86
-
87
- reply_messages = ["なにもないよ"];
88
-
89
-
90
-
91
- } else if ('すごい' == user_message) {
92
-
93
- //「アイデア」と入力されたときの処理
94
-
95
- reply_messages = ["すごくない"];
96
-
97
-
98
-
99
- } else {
100
-
101
- // アイデアやメモが入力されたときの処理
102
-
103
- reply_messages = ['応答E'];
104
-
105
- }
106
-
107
-
108
-
109
- // メッセージを返信
110
-
111
- var messages = reply_messages.map(function (v) {
112
-
113
- return {'type': 'text', 'text': v};
114
-
115
- });
116
-
117
- UrlFetchApp.fetch(line_endpoint, {
118
-
119
- 'headers': {
120
-
121
- 'Content-Type': 'application/json; charset=UTF-8',
122
-
123
- 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
124
-
125
- },
126
-
127
- 'method': 'post',
128
-
129
- 'payload': JSON.stringify({
130
-
131
- 'replyToken': reply_token,
132
-
133
- 'messages': messages,
134
-
135
- }),
136
-
137
- });
138
-
139
- return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
140
-
141
- }
43
+ var API_URL = 'https://api.line.me/v2/bot/message/reply'; //
44
+
45
+ var CHANNEL_ACCESS_TOKEN = 'XXXXXXXX';
46
+
47
+
48
+
49
+ function doPost(e) {
50
+
51
+
52
+
53
+ var user_message = '';
54
+
55
+ var user_message1 = '';
56
+
57
+
58
+
59
+ var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;
60
+
61
+ if (typeof reply_token === 'undefined') {
62
+
63
+ return;
64
+
65
+ }
66
+
67
+
68
+
69
+
70
+
71
+ var message_type = JSON.parse(e.postData.contents).events[0].message.type;
72
+
73
+
74
+
75
+ if(message_type === 'text') {
76
+
77
+ var text_str = JSON.parse(e.postData.contents).events[0].message.text;
78
+
79
+ user_message = "success_message_1"
80
+
81
+
82
+
83
+ } else {
84
+
85
+ user_message == 'failure_message';
86
+
87
+ }
88
+
89
+
90
+
91
+
92
+
93
+ UrlFetchApp.fetch(API_URL, {
94
+
95
+ 'headers': {
96
+
97
+ 'Content-Type': 'application/json; charset=UTF-8',
98
+
99
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
100
+
101
+ },
102
+
103
+ 'method': 'post',
104
+
105
+ 'payload': JSON.stringify({
106
+
107
+ 'replyToken': reply_token,
108
+
109
+ 'messages': [
110
+
111
+ {
112
+
113
+ 'type': 'こんにちは',
114
+
115
+ 'text': こんにちは,
116
+
117
+ },
118
+
119
+ {
120
+
121
+ 'type': 'ありがとう',
122
+
123
+ 'text': ありがとう,
124
+
125
+ },
126
+
127
+ {
128
+
129
+ 'type': 'ナイス',
130
+
131
+ 'text': ないす,
132
+
133
+ },
134
+
135
+ {
136
+
137
+ 'type': 'いいえ',
138
+
139
+ 'text': はい,
140
+
141
+ },
142
+
143
+ {
144
+
145
+ 'type': 'つまり',
146
+
147
+ 'text': それって,
148
+
149
+ },
150
+
151
+ ],
152
+
153
+ }),
154
+
155
+ });
156
+
157
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
158
+
159
+ }
160
+
161
+
142
162
 
143
163
  ```
144
164
 
@@ -152,9 +172,33 @@
152
172
 
153
173
  他の方の質問を見ても理解できませんでしたので新たに質問させて頂きます。
154
174
 
155
- 実行ボタンを押しても、line側からユーザーが指定した文字を送信しても既読スルー。
175
+ line側からユーザーが指定した文字を送信しても既読スルーになり、返しがありません
176
+
177
+
178
+
156
-
179
+ 調べて見たリンク
180
+
157
-
181
+ ・https://teratail.com/questions/172080?link=qa_related_pc
182
+
183
+ ※上記urlのコードをそのままコピペしてもundefined からプロパティ「postData」を読み取れません。と返されてしまいました。
184
+
185
+ ・https://teratail.com/questions/135617?link=qa_related_pc
186
+
187
+ ※GASを実行していませんか?と言う問いが理解できません。
188
+
189
+ ・https://qiita.com/t_gata/items/897936761695124ef920
190
+
191
+ ※上記リンク先のコードも試しましたがやはり、「postData」を読み取れません。と返されてしまいました。
192
+
193
+
194
+
195
+ なので、恐らく【var reply_token= JSON.parse(e.postData.contents).events[0].replyToken;】に関係するGAS上の設定なのかな、と思っています。
196
+
197
+
198
+
199
+ ご教授して頂けませんでしょうか。
200
+
201
+ お願い致します。
158
202
 
159
203
 
160
204
 

2

修正

2019/10/09 07:48

投稿

ciipao777
ciipao777

スコア5

test CHANGED
File without changes
test CHANGED
@@ -17,8 +17,6 @@
17
17
  ```
18
18
 
19
19
  GAS上:undefined からプロパティ「postData」を読み取れません。
20
-
21
- LINE上:Webhookが無効なHTTPステータスコードを返しました
22
20
 
23
21
  ※「公開、承認、URL貼り付け」は全て行われております。他に必要な作業はあるのでしょうか?
24
22
 

1

更に情報を追加

2019/10/09 06:43

投稿

ciipao777
ciipao777

スコア5

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,9 @@
6
6
 
7
7
  又、応答させるBOTを作成しようとしております。
8
8
 
9
+ 以下、参照
9
10
 
11
+ https://www.pc-koubou.jp/magazine/22388#section04
10
12
 
11
13
  ### 発生している問題・エラーメッセージ
12
14
 
@@ -14,7 +16,9 @@
14
16
 
15
17
  ```
16
18
 
17
- undefined からプロパティ「postData」を読み取れません。
19
+ GAS上:undefined からプロパティ「postData」を読み取れません。
20
+
21
+ LINE上:Webhookが無効なHTTPステータスコードを返しました
18
22
 
19
23
  ※「公開、承認、URL貼り付け」は全て行われております。他に必要な作業はあるのでしょうか?
20
24
 
@@ -28,11 +32,115 @@
28
32
 
29
33
  ```ここに言語名を入力
30
34
 
35
+ var line_endpoint = 'https://api.line.me/v2/bot/message/reply';
36
+
37
+
38
+
31
- function doPost(e) {
39
+ function doPost(e) {
32
40
 
33
41
  // JSONをパース
34
42
 
35
43
  var json = JSON.parse(e.postData.contents);
44
+
45
+
46
+
47
+ // 送信されてきたメッセージを取得
48
+
49
+ var user_message = json.events[0].message.text;
50
+
51
+
52
+
53
+ // 返信するためのトークンを取得
54
+
55
+ var reply_token= json.events[0].replyToken;
56
+
57
+ if (typeof reply_token === 'undefined') {
58
+
59
+ return;
60
+
61
+ }
62
+
63
+
64
+
65
+ // 返信するメッセージを配列で用意する
66
+
67
+ var reply_messages;
68
+
69
+ if ('はい' == user_message) {
70
+
71
+ // 「ヘルプ」と入力されたときの返信メッセージ
72
+
73
+ reply_messages = ["いいえ?"];
74
+
75
+
76
+
77
+ } else if ('元気?' == user_message) {
78
+
79
+ //「スプレッドシート」と入力されたときの処理
80
+
81
+ reply_messages = ["元気だよ"];
82
+
83
+
84
+
85
+ } else if ('何かあったの?' == user_message) {
86
+
87
+ //「アイデア」と入力されたときの処理
88
+
89
+ reply_messages = ["なにもないよ"];
90
+
91
+
92
+
93
+ } else if ('すごい' == user_message) {
94
+
95
+ //「アイデア」と入力されたときの処理
96
+
97
+ reply_messages = ["すごくない"];
98
+
99
+
100
+
101
+ } else {
102
+
103
+ // アイデアやメモが入力されたときの処理
104
+
105
+ reply_messages = ['応答E'];
106
+
107
+ }
108
+
109
+
110
+
111
+ // メッセージを返信
112
+
113
+ var messages = reply_messages.map(function (v) {
114
+
115
+ return {'type': 'text', 'text': v};
116
+
117
+ });
118
+
119
+ UrlFetchApp.fetch(line_endpoint, {
120
+
121
+ 'headers': {
122
+
123
+ 'Content-Type': 'application/json; charset=UTF-8',
124
+
125
+ 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
126
+
127
+ },
128
+
129
+ 'method': 'post',
130
+
131
+ 'payload': JSON.stringify({
132
+
133
+ 'replyToken': reply_token,
134
+
135
+ 'messages': messages,
136
+
137
+ }),
138
+
139
+ });
140
+
141
+ return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
142
+
143
+ }
36
144
 
37
145
  ```
38
146
 
@@ -42,7 +150,7 @@
42
150
 
43
151
 
44
152
 
45
- 4サイトのコードをコピペして試しましたが、すべて同じエラーが返されました。
153
+ 掲載されている4サイトのコードをコピペして試しましたが、すべて同じエラーが返されました。
46
154
 
47
155
  他の方の質問を見ても理解できませんでしたので新たに質問させて頂きます。
48
156