質問編集履歴

17

コードの修正

2019/04/21 03:40

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -215,129 +215,3 @@
215
215
  使用書籍:独学プログラマーのためのAIアプリ開発がわかる本
216
216
 
217
217
  116ページから141ページまではできましたが、142ページから進んでいないです。
218
-
219
-
220
-
221
- **文字起こし君のサンプルコード**
222
-
223
- ```ここに言語を入力
224
-
225
- function doPost(e) {
226
-
227
- const LINE_ACCESS_TOKEN = ${ACCESS_TOKEN};
228
-
229
- const lineJson = JSON.parse(e.postData.contents);
230
-
231
- const replyToken = lineJson.events[0].replyToken;
232
-
233
- const messageId = lineJson.events[0].message.id;
234
-
235
- const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";
236
-
237
- const lineImageResponse = UrlFetchApp.fetch(lineImageUrl, {
238
-
239
-  'headers': {
240
-
241
-   'Content-Type': 'application/json; charset=UTF-8',
242
-
243
-   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
244
-
245
-  },
246
-
247
-  'method': 'get'
248
-
249
- })
250
-
251
- .getContent();
252
-
253
- const lineImageBlob = Utilities.base64Encode(lineImageResponse);
254
-
255
- const API_KEY = ${API_KEY};
256
-
257
- const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY;
258
-
259
- const payload = JSON.stringify({
260
-
261
-   "requests":[
262
-
263
-    {
264
-
265
-      "image": {
266
-
267
-       "content": lineImageBlob
268
-
269
-      },
270
-
271
-      "features": [
272
-
273
-       {
274
-
275
-       "type": "TEXT_DETECTION",
276
-
277
-       "maxResults": 1
278
-
279
-       }
280
-
281
-      ]
282
-
283
-     }
284
-
285
-    ]
286
-
287
- });
288
-
289
- const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, {
290
-
291
-  method: "POST",
292
-
293
-  contentType: "application/json",
294
-
295
-  payload: payload,
296
-
297
- })
298
-
299
- .getContentText();
300
-
301
- const visionTextJson = JSON.parse(visionTextResponse);
302
-
303
- const visionText = visionTextJson.responses[0].fullTextAnnotation.
304
-
305
- text;
306
-
307
- const messages = [
308
-
309
-   {
310
-
311
-   "type":"text",
312
-
313
-   "text": visionText
314
-
315
-   }
316
-
317
- ]
318
-
319
- UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", {
320
-
321
-  "headers": {
322
-
323
-   "Content-Type": "application/json; charset=UTF-8",
324
-
325
-   "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
326
-
327
-  },
328
-
329
-  "method": "post",
330
-
331
-  "payload": JSON.stringify({
332
-
333
-   "replyToken": replyToken,
334
-
335
-   "messages": messages,
336
-
337
-  })
338
-
339
- });
340
-
341
- }
342
-
343
- ```

16

試みたことの追加

2019/04/21 03:40

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -204,7 +204,7 @@
204
204
 
205
205
  ・Googleの拡張サービスのDrive APIを有効にした。
206
206
 
207
- ・LINE BOTをGASで作成(https://qiita.com/t_gata/items/897936761695124ef920)を参照した。
207
+ ・LINE BOTをGASで作成(https://qiita.com/t_gata/items/897936761695124ef920)を参照し、少し時間をおいが、解決していない
208
208
 
209
209
  ・TypeError: undefined からプロパティ「postData」を読み取るための解決策(https://teratail.com/questions/181927)を参照し、実行した。
210
210
 

15

補足情報の追加

2019/04/15 23:34

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
File without changes

14

補足情報の追加

2019/04/15 23:31

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,15 @@
1
+ const lineJson = JSON.parse(e.postData.contents);
2
+
3
+ この部分のコードのpostDataの読み取りをするにはどのようにすれば良いかアドバイスをいただきたいです。
4
+
5
+ よろしくお願いいたします。
6
+
7
+
8
+
9
+ 言語:JavaScript
10
+
11
+ 環境:Goole Apps Script
12
+
1
13
  ```ここに言語を入力
2
14
 
3
15
  function doPost(e) {

13

試みたことの追加

2019/04/15 23:23

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -194,6 +194,8 @@
194
194
 
195
195
  ・LINE BOTをGASで作成(https://qiita.com/t_gata/items/897936761695124ef920)を参照した。
196
196
 
197
+ ・TypeError: undefined からプロパティ「postData」を読み取るための解決策(https://teratail.com/questions/181927)を参照し、実行した。
198
+
197
199
 
198
200
 
199
201
  **補足情報**

12

補足情報の追加

2019/04/15 23:14

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -176,7 +176,7 @@
176
176
 
177
177
  ```ここに言語を入力
178
178
 
179
- TypeError: undefined からプロパティ「postData」を読み取れません。(行 3、ファイル「コード」)
179
+ TypeError: undefined からプロパティ「postData」を読み取れません。(行 2、ファイル「コード」)
180
180
 
181
181
  ```
182
182
 

11

画像追加

2019/04/15 14:44

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -180,6 +180,8 @@
180
180
 
181
181
  ```
182
182
 
183
+ ![イメージ説明](5396628634748a454ec734bc7e930e0e.jpeg)
184
+
183
185
  とエラーが出てきます。
184
186
 
185
187
 

10

補足情報の追加、インデントの調整

2019/04/15 14:42

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -197,3 +197,131 @@
197
197
  **補足情報**
198
198
 
199
199
  使用書籍:独学プログラマーのためのAIアプリ開発がわかる本
200
+
201
+ 116ページから141ページまではできましたが、142ページから進んでいないです。
202
+
203
+
204
+
205
+ **文字起こし君のサンプルコード**
206
+
207
+ ```ここに言語を入力
208
+
209
+ function doPost(e) {
210
+
211
+ const LINE_ACCESS_TOKEN = ${ACCESS_TOKEN};
212
+
213
+ const lineJson = JSON.parse(e.postData.contents);
214
+
215
+ const replyToken = lineJson.events[0].replyToken;
216
+
217
+ const messageId = lineJson.events[0].message.id;
218
+
219
+ const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";
220
+
221
+ const lineImageResponse = UrlFetchApp.fetch(lineImageUrl, {
222
+
223
+  'headers': {
224
+
225
+   'Content-Type': 'application/json; charset=UTF-8',
226
+
227
+   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
228
+
229
+  },
230
+
231
+  'method': 'get'
232
+
233
+ })
234
+
235
+ .getContent();
236
+
237
+ const lineImageBlob = Utilities.base64Encode(lineImageResponse);
238
+
239
+ const API_KEY = ${API_KEY};
240
+
241
+ const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY;
242
+
243
+ const payload = JSON.stringify({
244
+
245
+   "requests":[
246
+
247
+    {
248
+
249
+      "image": {
250
+
251
+       "content": lineImageBlob
252
+
253
+      },
254
+
255
+      "features": [
256
+
257
+       {
258
+
259
+       "type": "TEXT_DETECTION",
260
+
261
+       "maxResults": 1
262
+
263
+       }
264
+
265
+      ]
266
+
267
+     }
268
+
269
+    ]
270
+
271
+ });
272
+
273
+ const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, {
274
+
275
+  method: "POST",
276
+
277
+  contentType: "application/json",
278
+
279
+  payload: payload,
280
+
281
+ })
282
+
283
+ .getContentText();
284
+
285
+ const visionTextJson = JSON.parse(visionTextResponse);
286
+
287
+ const visionText = visionTextJson.responses[0].fullTextAnnotation.
288
+
289
+ text;
290
+
291
+ const messages = [
292
+
293
+   {
294
+
295
+   "type":"text",
296
+
297
+   "text": visionText
298
+
299
+   }
300
+
301
+ ]
302
+
303
+ UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", {
304
+
305
+  "headers": {
306
+
307
+   "Content-Type": "application/json; charset=UTF-8",
308
+
309
+   "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
310
+
311
+  },
312
+
313
+  "method": "post",
314
+
315
+  "payload": JSON.stringify({
316
+
317
+   "replyToken": replyToken,
318
+
319
+   "messages": messages,
320
+
321
+  })
322
+
323
+ });
324
+
325
+ }
326
+
327
+ ```

9

画像削除

2019/04/15 14:26

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -182,8 +182,6 @@
182
182
 
183
183
  とエラーが出てきます。
184
184
 
185
- ![イメージ説明](3b05007b0c904f3ea27c64d2cb8523b7.jpeg)
186
-
187
185
 
188
186
 
189
187
  **試みたこと**

8

画像追加

2019/04/15 14:10

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -182,6 +182,8 @@
182
182
 
183
183
  とエラーが出てきます。
184
184
 
185
+ ![イメージ説明](3b05007b0c904f3ea27c64d2cb8523b7.jpeg)
186
+
185
187
 
186
188
 
187
189
  **試みたこと**

7

画像追加

2019/04/15 14:01

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -81,6 +81,8 @@
81
81
  上記のコードで
82
82
 
83
83
  文字起こし君で文字起こしをするサンプルです。と表示されるのですが
84
+
85
+ ![イメージ説明](5acc6397eb875911c7ab164292e43928.jpeg)
84
86
 
85
87
  ```ここに言語を入力
86
88
 

6

コードの修正

2019/04/15 13:53

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
       "image": {
34
34
 
35
-        "content": lineImageBlob
35
+        "content": imageBlob
36
36
 
37
37
       },
38
38
 
@@ -122,7 +122,7 @@
122
122
 
123
123
       "image": {
124
124
 
125
-        "content": lineImageBlob
125
+        "content": imageBlob
126
126
 
127
127
       },
128
128
 

5

コードの修正

2019/04/15 13:38

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -9,8 +9,6 @@
9
9
   'headers': {
10
10
 
11
11
    'Content-Type': 'application/json; charset=UTF-8',
12
-
13
-   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
14
12
 
15
13
    },
16
14
 
@@ -101,8 +99,6 @@
101
99
   'headers': {
102
100
 
103
101
    'Content-Type': 'application/json; charset=UTF-8',
104
-
105
-   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
106
102
 
107
103
    },
108
104
 

4

コードの修正

2019/04/15 13:04

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,9 @@
2
2
 
3
3
  function doPost(e) {
4
4
 
5
- const LINE_ACCESS_TOKEN = ${ACCESS_TOKEN};
6
-
7
- const lineJson = JSON.parse(e.postData.contents);
8
-
9
- const replyToken = lineJson.events[0].replyToken;
10
-
11
- const messageId = lineJson.events[0].message.id;
12
-
13
- const lineImageUrl = "https://api.line.me/v2/bot/message/" + messageId + "/content/";
5
+ const url = "https://dividable.net/wp/wp-content/uploads/2019/01/sample2.png";
14
-
6
+
15
- const lineImageResponse = UrlFetchApp.fetch(lineImageUrl, {
7
+ const imageResponse = UrlFetchApp.fetch(url, {
16
8
 
17
9
   'headers': {
18
10
 
@@ -28,7 +20,7 @@
28
20
 
29
21
   .getContent();
30
22
 
31
- const lineImageBlob = Utilities.base64Encode(lineImageResponse);
23
+ const imageBlob = Utilities.base64Encode(imageResponse);
32
24
 
33
25
  const API_KEY = ${API_KEY};
34
26
 
@@ -82,45 +74,107 @@
82
74
 
83
75
  text;
84
76
 
77
+ console.log(visionText);
78
+
79
+ }
80
+
81
+ ```
82
+
83
+ 上記のコードで
84
+
85
+ 文字起こし君で文字起こしをするサンプルです。と表示されるのですが
86
+
87
+ ```ここに言語を入力
88
+
89
+ function doPost(e) {
90
+
91
+ const lineJson = JSON.parse(e.postDate.contents);
92
+
85
- const messages = [
93
+ console.log(lineJson);
94
+
95
+ /**
96
+
97
+ const url = "https://dividable.net/wp/wp-content/uploads/2019/01/sample2.png";
98
+
99
+ const imageResponse = UrlFetchApp.fetch(url, {
100
+
101
+  'headers': {
102
+
103
+   'Content-Type': 'application/json; charset=UTF-8',
104
+
105
+   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
106
+
107
+   },
108
+
109
+  'method': 'get'
110
+
111
+   })
112
+
113
+  .getContent();
114
+
115
+ const imageBlob = Utilities.base64Encode(imageResponse);
116
+
117
+ const API_KEY = ${API_KEY};
118
+
119
+ const visionRequestUrl = 'https://vision.googleapis.com/v1/images:annotate?key=' + API_KEY;
120
+
121
+ const payload = JSON.stringify({
122
+
123
+  "requests":[
86
124
 
87
125
    {
88
126
 
127
+      "image": {
128
+
129
+        "content": lineImageBlob
130
+
131
+      },
132
+
133
+      "features": [
134
+
135
+        {
136
+
89
-    "type":"text",
137
+        "type": "TEXT_DETECTION",
90
-
138
+
91
-    "text": visionText
139
+        "maxResults": 1
92
-
140
+
93
-   }
141
+        }
94
-
142
+
95
- ]
143
+      ]
96
-
97
- UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", {
144
+
98
-
99
-   "headers": {
100
-
101
-    "Content-Type": "application/json; charset=UTF-8",
102
-
103
-    "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
104
-
105
-   },
145
+    }
106
-
107
-   "method": "post",
146
+
108
-
109
-   "payload": JSON.stringify({
110
-
111
-    "replyToken": replyToken,
112
-
113
-    "messages": messages,
114
-
115
-   })
147
+  ]
116
148
 
117
149
  });
118
150
 
151
+ const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, {
152
+
153
+  method: "POST",
154
+
155
+  contentType: "application/json",
156
+
157
+  payload: payload,
158
+
159
+ })
160
+
161
+ .getContentText();
162
+
163
+ const visionTextJson = JSON.parse(visionTextResponse);
164
+
165
+ const visionText = visionTextJson.responses[0].fullTextAnnotation.
166
+
167
+ text;
168
+
169
+ console.log(visionText);
170
+
171
+ **/
172
+
119
173
  }
120
174
 
121
175
  ```
122
176
 
123
- **エラー内容**
177
+ にすると
124
178
 
125
179
  ```ここに言語を入力
126
180
 
@@ -128,11 +182,13 @@
128
182
 
129
183
  ```
130
184
 
185
+ とエラーが出てきます。
186
+
131
187
 
132
188
 
133
189
  **試みたこと**
134
190
 
135
- ・${ACCESS_TOKEN}と${API_KEY}は与えられたものに変更した。(""を付けて)
191
+ ・${API_KEY}は与えられたものに変更した。(""を付けて)
136
192
 
137
193
  ・Googleの拡張サービスのDrive APIを有効にした。
138
194
 

3

インデントの調整

2019/04/15 12:57

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -14,19 +14,19 @@
14
14
 
15
15
  const lineImageResponse = UrlFetchApp.fetch(lineImageUrl, {
16
16
 
17
- 'headers': {
17
+  'headers': {
18
18
 
19
- 'Content-Type': 'application/json; charset=UTF-8',
19
+   'Content-Type': 'application/json; charset=UTF-8',
20
20
 
21
- "Authorization": "Bearer " + LINE_ACCESS_TOKEN
21
+   "Authorization": "Bearer " + LINE_ACCESS_TOKEN
22
22
 
23
- },
23
+   },
24
24
 
25
- 'method': 'get'
25
+  'method': 'get'
26
26
 
27
- })
27
+   })
28
28
 
29
- .getContent();
29
+  .getContent();
30
30
 
31
31
  const lineImageBlob = Utilities.base64Encode(lineImageResponse);
32
32
 
@@ -36,41 +36,41 @@
36
36
 
37
37
  const payload = JSON.stringify({
38
38
 
39
- "requests":[
39
+  "requests":[
40
40
 
41
- {
41
+   {
42
42
 
43
- "image": {
43
+      "image": {
44
44
 
45
- "content": lineImageBlob
45
+        "content": lineImageBlob
46
46
 
47
- },
47
+      },
48
48
 
49
- "features": [
49
+      "features": [
50
50
 
51
- {
51
+        {
52
52
 
53
- "type": "TEXT_DETECTION",
53
+        "type": "TEXT_DETECTION",
54
54
 
55
- "maxResults": 1
55
+        "maxResults": 1
56
56
 
57
- }
57
+        }
58
58
 
59
- ]
59
+      ]
60
60
 
61
- }
61
+    }
62
62
 
63
- ]
63
+  ]
64
64
 
65
65
  });
66
66
 
67
67
  const visionTextResponse = UrlFetchApp.fetch(visionRequestUrl, {
68
68
 
69
- method: "POST",
69
+  method: "POST",
70
70
 
71
- contentType: "application/json",
71
+  contentType: "application/json",
72
72
 
73
- payload: payload,
73
+  payload: payload,
74
74
 
75
75
  })
76
76
 
@@ -84,35 +84,35 @@
84
84
 
85
85
  const messages = [
86
86
 
87
- {
87
+   {
88
88
 
89
- "type":"text",
89
+    "type":"text",
90
90
 
91
- "text": visionText
91
+    "text": visionText
92
92
 
93
- }
93
+   }
94
94
 
95
95
  ]
96
96
 
97
97
  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", {
98
98
 
99
- "headers": {
99
+   "headers": {
100
100
 
101
- "Content-Type": "application/json; charset=UTF-8",
101
+    "Content-Type": "application/json; charset=UTF-8",
102
102
 
103
- "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
103
+    "Authorization": "Bearer " + LINE_ACCESS_TOKEN,
104
104
 
105
- },
105
+   },
106
106
 
107
- "method": "post",
107
+   "method": "post",
108
108
 
109
- "payload": JSON.stringify({
109
+   "payload": JSON.stringify({
110
110
 
111
- "replyToken": replyToken,
111
+    "replyToken": replyToken,
112
112
 
113
- "messages": messages,
113
+    "messages": messages,
114
114
 
115
- })
115
+   })
116
116
 
117
117
  });
118
118
 

2

試みたことの追加

2019/04/15 12:42

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,8 @@
132
132
 
133
133
  **試みたこと**
134
134
 
135
+ ・${ACCESS_TOKEN}と${API_KEY}は与えられたものに変更した。(""を付けて)
136
+
135
137
  ・Googleの拡張サービスのDrive APIを有効にした。
136
138
 
137
139
  ・LINE BOTをGASで作成(https://qiita.com/t_gata/items/897936761695124ef920)を参照した。

1

補足情報の追加

2019/04/15 11:44

投稿

tsuyo244s
tsuyo244s

スコア37

test CHANGED
File without changes
test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
  ```
122
122
 
123
- エラー内容
123
+ **エラー内容**
124
124
 
125
125
  ```ここに言語を入力
126
126
 
@@ -130,8 +130,14 @@
130
130
 
131
131
 
132
132
 
133
- 試みたこと
133
+ **試みたこと**
134
134
 
135
135
  ・Googleの拡張サービスのDrive APIを有効にした。
136
136
 
137
137
  ・LINE BOTをGASで作成(https://qiita.com/t_gata/items/897936761695124ef920)を参照した。
138
+
139
+
140
+
141
+ **補足情報**
142
+
143
+ 使用書籍:独学プログラマーのためのAIアプリ開発がわかる本