質問編集履歴

2

エラーメッセージの記載位置を変更

2021/07/19 14:41

投稿

fujimido
fujimido

スコア1

test CHANGED
File without changes
test CHANGED
@@ -34,9 +34,7 @@
34
34
 
35
35
  エラーメッセージ
36
36
 
37
- ```
37
+
38
-
39
- エラー
40
38
 
41
39
  SyntaxError: Unexpected token < in JSON at position 0
42
40
 
@@ -44,6 +42,10 @@
44
42
 
45
43
  postReport_thumbnail @ コード.gs:31
46
44
 
45
+ ```
46
+
47
+
48
+
47
49
 
48
50
 
49
51
  ### 発生している問題・エラーメッセージ その2 タグが設定できない
@@ -56,12 +58,10 @@
56
58
 
57
59
  ```
58
60
 
59
- エラーメッセージ
60
-
61
- ```
62
-
63
61
  エラーメッセージは出ません。正常終了します。
64
62
 
63
+ ```
64
+
65
65
 
66
66
 
67
67
 

1

「やってほしいことだけを記載した丸投げの質問」というご指摘をいただき、テンプレートに従い修正を行いました。

2021/07/19 14:41

投稿

fujimido
fujimido

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,121 +1,301 @@
1
+ ### 前提・実現したいこと
2
+
3
+ GASからWordPressに記事を自動投稿するプログラムを作っています。
4
+
5
+ 投稿時に以下をつけたいです。
6
+
7
+ ・アイキャッチ画像
8
+
9
+ ・タグ
10
+
11
+ ・カテゴリ
12
+
13
+
14
+
1
- 下のスで実行たとき、自動投稿はされ、カテゴリはつきタグがつきません。
15
+ 下のジを参照自動投稿プログラムを作りしたアイキャッチ画像とタグが入りません。
16
+
17
+ カテゴリは入ります。
18
+
19
+ 「GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法」
20
+
21
+  https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
22
+
23
+
24
+
25
+
26
+
27
+ ### 発生している問題・エラーメッセージ その1 アイキャッチ画像が入らない
28
+
29
+ var responseJson = JSON.parse(response.getContentText());
30
+
31
+ この関数の実行時にエラーとなります。
32
+
33
+ ```
34
+
35
+ エラーメッセージ
36
+
37
+ ```
38
+
39
+ エラー
40
+
41
+ SyntaxError: Unexpected token < in JSON at position 0
42
+
43
+ postImage @ コード.gs:90
44
+
45
+ postReport_thumbnail @ コード.gs:31
46
+
47
+
48
+
49
+ ### 発生している問題・エラーメッセージ その2 タグが設定できない
50
+
51
+ アイキャッチ画像の処理(31,33,38行)をコメントアウトして実行したところ
52
+
53
+ エラーはなくなり、自動投稿できました。
54
+
55
+ その際、カテゴリは設定できましたが、タグが設定できません。
56
+
57
+ ```
58
+
59
+ エラーメッセージ
60
+
61
+ ```
62
+
63
+ エラーメッセージは出ません。正常終了します。
64
+
65
+
66
+
67
+
68
+
69
+ ### 該当のソースコード
2
70
 
3
71
 
4
72
 
5
73
  ```GAS
6
74
 
7
- //GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法
8
-
9
- //https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
10
-
11
-
12
-
13
-
14
-
15
- /*
16
-
17
- 関数概要
18
-
19
- wordpressに記事を投稿する処理(アイキャッチ画像付)
20
-
21
-
22
-
23
- 戻り値
24
-
25
-  実行結果
26
-
27
- */
28
-
29
- function postReport_thumbnail() {
30
-
31
-
32
-
33
- var siteUrl = 'https://xxxx2020.com/';
34
-
35
- var user = 'xxxx2020';
36
-
37
- var pass = 'BIIa UHbE knYr f7DE JMy6 xxxx';
38
-
39
- var title = '自動投稿テスト(アイキャッチ画像付)';
40
-
41
- var content = 'これは自動投稿です。(アイキャッチ画像付)';
42
-
43
- var categories = 23;
44
-
45
- var tag = 26;
46
-
47
-
48
-
49
- var apiUrl = siteUrl + 'wp-json/wp/v2/posts';
50
-
51
-
52
-
53
- var headers = {
54
-
55
- 'Content-Type': 'application/json',
56
-
57
- 'Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
58
-
59
- };
60
-
61
- //画像をアップロードする
62
-
63
- //var imageID = postImage(siteUrl, user, pass, 'http://xxxx2020.com/wp-content/uploads/2021/02/IMG_9456-2.jpg');
64
-
65
- //アップロードした結果の画像IDを取得
66
-
67
- //imageID = Number(imageID["id"])
68
-
69
-
70
-
71
- var arguments = {
72
-
73
- 'title': title,
74
-
75
- 'content': content,
76
-
77
- //'featured_media': imageID,
78
-
79
- 'status': 'publish',
80
-
81
- 'comment_status': 'closed',
82
-
83
- 'categories':categories,
84
-
85
- 'tag':tag
86
-
87
- }
88
-
89
-
90
-
91
- var options = {
92
-
93
- 'method': 'POST',
94
-
95
- 'muteHttpExceptions': true,
96
-
97
- 'headers': headers,
98
-
99
- 'payload': JSON.stringify(arguments)
100
-
101
- };
102
-
103
-
104
-
105
- var response = UrlFetchApp.fetch(apiUrl, options);
106
-
107
- var responseJson = JSON.parse(response.getContentText());
108
-
109
-
110
-
111
- return responseJson;
112
-
113
- }
114
-
115
-
116
-
117
- ```
118
-
119
-
120
-
121
- よろしくお願いいたします。
75
+ 1 //GASでワードプレスを自動投稿する方法~REST APIによる記事の新規作成手順
76
+
77
+ 2 //https://auto-worker.com/blog/?p=2475
78
+
79
+ 3
80
+
81
+ 4 //GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法
82
+
83
+ 5 //https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
84
+
85
+ 6
86
+
87
+ 7
88
+
89
+ 8 /*
90
+
91
+ 9 関数概要
92
+
93
+ 10 wordpressに記事を投稿する処理(アイキャッチ画像付)
94
+
95
+ 11 戻り値
96
+
97
+ 12 実行結果
98
+
99
+ 13 */
100
+
101
+ 14 function postReport_thumbnail() {
102
+
103
+ 15
104
+
105
+ 16 var siteUrl = 'https://xxxx2020.com/';
106
+
107
+ 17 var user = 'xxxx2020';
108
+
109
+ 18 var pass = 'BIIa UHbE knYr f7DE JMy6 xxxx';
110
+
111
+ 19 var title = '自動投稿テスト(アイキャッチ画像付)';
112
+
113
+ 20 var content = 'これは自動投稿です。(アイキャッチ画像付)';
114
+
115
+ 21 var categories = [23,49];
116
+
117
+ 22 var tags = [26,42,1,100,99];
118
+
119
+ 23
120
+
121
+ 24 var apiUrl = siteUrl + 'wp-json/wp/v2/posts';
122
+
123
+ 25
124
+
125
+ 26 var headers = {
126
+
127
+ 27 Content-Type': 'application/json',
128
+
129
+ 28 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
130
+
131
+ 29 };
132
+
133
+ 30 //画像をアップロードする
134
+
135
+ 31 var imageID = postImage(siteUrl, user, pass, 'http://xxxx2020.com/wp-content/uploads/2021/02/IMG_9456-2.jpg');
136
+
137
+ 32 //アップロードした結果の画像IDを取得
138
+
139
+ 33 imageID = Number(imageID["id"])
140
+
141
+ 34
142
+
143
+ 35 var arguments = {
144
+
145
+ 36 title': title,
146
+
147
+ 37 content': content,
148
+
149
+ 38 featured_media': imageID,
150
+
151
+ 39 status': 'publish',
152
+
153
+ 40 comment_status': 'closed',
154
+
155
+ 41 categories':categories,
156
+
157
+ 42 tag':tags
158
+
159
+ 43 }
160
+
161
+ 44
162
+
163
+ 45 var options = {
164
+
165
+ 46 method': 'POST',
166
+
167
+ 47 muteHttpExceptions': true,
168
+
169
+ 48 headers': headers,
170
+
171
+ 49 payload': JSON.stringify(arguments)
172
+
173
+ 50 };
174
+
175
+ 51
176
+
177
+ 52 var response = UrlFetchApp.fetch(apiUrl, options);
178
+
179
+ 53 var responseJson = JSON.parse(response.getContentText());
180
+
181
+ 54
182
+
183
+ 55 return responseJson;
184
+
185
+ 56 }
186
+
187
+ 57
188
+
189
+ 58
190
+
191
+ 59 /////////////////////////////////////////////////
192
+
193
+ 60 /*
194
+
195
+ 61 関数概要
196
+
197
+ 62 wordpressに画像をアップロードし、その結果を返す
198
+
199
+ 63 引数
200
+
201
+ 64 siteUrl サイトのURL
202
+
203
+ 65 user API認証するためのユーザー名
204
+
205
+ 66 pass API認証するためのパスワード
206
+
207
+ 67 imageUrl 画像URL
208
+
209
+ 68 戻り値
210
+
211
+ 69 アップロード結果
212
+
213
+ 70 */
214
+
215
+ 71 function postImage(siteUrl, user, pass, imageUrl) {
216
+
217
+ 72
218
+
219
+ 73 var apiUrl = siteUrl + 'wp-json/wp/v2/media';
220
+
221
+ 74
222
+
223
+ 75 var headers = {
224
+
225
+ 76 Content-Type': 'image/png',
226
+
227
+ 77 Content-Disposition': 'attachment;filename=IMG_9456-2.jpg',
228
+
229
+ 78 accept': 'application/json',
230
+
231
+ 79 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
232
+
233
+ 80 };
234
+
235
+ 81
236
+
237
+ 82 var options = {
238
+
239
+ 83 method': 'POST',
240
+
241
+ 84 muteHttpExceptions': true,
242
+
243
+ 85 headers': headers,
244
+
245
+ 86 payload': UrlFetchApp.fetch(imageUrl)
246
+
247
+ 87 };
248
+
249
+ 88
250
+
251
+ 89 var response = UrlFetchApp.fetch(apiUrl, options);
252
+
253
+ 90 var responseJson = JSON.parse(response.getContentText());
254
+
255
+ 91
256
+
257
+ 92 return responseJson;
258
+
259
+ 93 }
260
+
261
+ ```
262
+
263
+
264
+
265
+ ### 試したこと 問題1 アイキャッチ画像
266
+
267
+ 1.取得する画像を以下の場所に変えてみましたが、同じエラーでした。
268
+
269
+    ・google photoのアドレス
270
+
271
+    ・プログラムのあるURL
272
+
273
+ 2.すでにアイキャッチ画像として登録されているものを設定した場合は登録できました。
274
+
275
+ (プログラム修正箇所)
276
+
277
+    31,33行をコメントアウト
278
+
279
+    38 featured_media': 35
280
+
281
+
282
+
283
+ ### 試したこと 問題2 タグ
284
+
285
+ 最初は数値を直接指定していました。
286
+
287
+  22行目 var tags = 26;
288
+
289
+ これを 配列にしてみましたが状況は変わりませんでした。
290
+
291
+
292
+
293
+ ### 補足情報(FW/ツールのバージョンなど)
294
+
295
+ Windows 10 Home
296
+
297
+ WordPress 5.7.2
298
+
299
+ プラグイン
300
+
301
+  Application Passwords バージョン 0.1.3