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

質問編集履歴

2

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

2021/07/19 14:41

投稿

fujimido
fujimido

スコア1

title CHANGED
File without changes
body CHANGED
@@ -16,20 +16,20 @@
16
16
  この関数の実行時にエラーとなります。
17
17
  ```
18
18
  エラーメッセージ
19
- ```
19
+
20
- エラー
21
20
  SyntaxError: Unexpected token < in JSON at position 0
22
21
  postImage @ コード.gs:90
23
22
  postReport_thumbnail @ コード.gs:31
23
+ ```
24
24
 
25
+
25
26
  ### 発生している問題・エラーメッセージ その2 タグが設定できない
26
27
  アイキャッチ画像の処理(31,33,38行)をコメントアウトして実行したところ
27
28
  エラーはなくなり、自動投稿できました。
28
29
  その際、カテゴリは設定できましたが、タグが設定できません。
29
30
  ```
30
- エラーメッセージ
31
+ エラーメッセージは出ません。正常終了します。
31
32
  ```
32
- エラーメッセージは出ません。正常終了します。
33
33
 
34
34
 
35
35
  ### 該当のソースコード

1

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

2021/07/19 14:41

投稿

fujimido
fujimido

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,61 +1,151 @@
1
+ ### 前提・実現したいこと
1
- 以下のソースで実行したとき、自動投稿はされ、カテゴリはつきまが、タがつきせん
2
+ GASからWordPressに記事を自動投稿するプロラムを作ってい
3
+ 投稿時に以下をつけたいです。
4
+ ・アイキャッチ画像
5
+ ・タグ
6
+ ・カテゴリ
2
7
 
8
+ 下のページを参照して自動投稿プログラムを作りましたがアイキャッチ画像とタグが入りません。
3
- ```GAS
9
+ カテゴリは入ります。
4
- //GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法
10
+ GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法
5
- //https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
11
+  https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
6
12
 
7
13
 
8
- /*
9
- 関数概要
10
- wordpressに記事を投稿す処理(アイキャッチ画像付)
14
+ ### 発生してい問題・エラーメッセージ その1 アイキャッチ画像が入らない
11
-
15
+ var responseJson = JSON.parse(response.getContentText());
16
+ この関数の実行時にエラーとなります。
12
- 戻り値
17
+ ```
13
-  実行結果
14
- */
18
+ エラーメッセージ
19
+ ```
20
+ エラー
21
+ SyntaxError: Unexpected token < in JSON at position 0
22
+ postImage @ コード.gs:90
15
- function postReport_thumbnail() {
23
+ postReport_thumbnail @ コード.gs:31
16
24
 
17
- var siteUrl = 'https://xxxx2020.com/';
18
- var user = 'xxxx2020';
25
+ ### 発生している問題・エラーメッセージ その2 タグが設定できない
19
- var pass = 'BIIa UHbE knYr f7DE JMy6 xxxx';
20
- var title = '自動投稿テスト(アイキャッチ画像付)';
26
+ アイキャッチ画像の処理(31,33,38行)をコメントアウトして実行したところ
21
- var content = 'これは自動投稿です。(アイキャッチ画像付)';
22
- var categories = 23;
27
+ エラーはなくなり、自動投稿できました。
28
+ その際、カテゴリは設定できましたが、タグが設定できません。
29
+ ```
23
- var tag = 26;
30
+ エラーメッセージ
31
+ ```
32
+ エラーメッセージは出ません。正常終了します。
24
33
 
25
- var apiUrl = siteUrl + 'wp-json/wp/v2/posts';
26
34
 
27
- var headers = {
35
+ ### 該当のソースコード
28
- 'Content-Type': 'application/json',
29
- 'Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
30
- };
31
- //画像をアップロードする
32
- //var imageID = postImage(siteUrl, user, pass, 'http://xxxx2020.com/wp-content/uploads/2021/02/IMG_9456-2.jpg');
33
- //アップロードした結果の画像IDを取得
34
- //imageID = Number(imageID["id"])
35
36
 
37
+ ```GAS
38
+ 1 //GASでワードプレスを自動投稿する方法~REST APIによる記事の新規作成手順
39
+ 2 //https://auto-worker.com/blog/?p=2475
40
+ 3
41
+ 4 //GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法
42
+ 5 //https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail
43
+ 6
44
+ 7
45
+ 8 /*
46
+ 9 関数概要
47
+ 10 wordpressに記事を投稿する処理(アイキャッチ画像付)
48
+ 11 戻り値
49
+ 12 実行結果
50
+ 13 */
51
+ 14 function postReport_thumbnail() {
52
+ 15
53
+ 16 var siteUrl = 'https://xxxx2020.com/';
54
+ 17 var user = 'xxxx2020';
55
+ 18 var pass = 'BIIa UHbE knYr f7DE JMy6 xxxx';
56
+ 19 var title = '自動投稿テスト(アイキャッチ画像付)';
57
+ 20 var content = 'これは自動投稿です。(アイキャッチ画像付)';
58
+ 21 var categories = [23,49];
59
+ 22 var tags = [26,42,1,100,99];
60
+ 23
61
+ 24 var apiUrl = siteUrl + 'wp-json/wp/v2/posts';
62
+ 25
63
+ 26 var headers = {
64
+ 27 Content-Type': 'application/json',
65
+ 28 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
66
+ 29 };
67
+ 30 //画像をアップロードする
68
+ 31 var imageID = postImage(siteUrl, user, pass, 'http://xxxx2020.com/wp-content/uploads/2021/02/IMG_9456-2.jpg');
69
+ 32 //アップロードした結果の画像IDを取得
70
+ 33 imageID = Number(imageID["id"])
71
+ 34
36
- var arguments = {
72
+ 35 var arguments = {
37
- 'title': title,
73
+ 36 title': title,
38
- 'content': content,
74
+ 37 content': content,
39
- //'featured_media': imageID,
75
+ 38 featured_media': imageID,
40
- 'status': 'publish',
76
+ 39 status': 'publish',
41
- 'comment_status': 'closed',
77
+ 40 comment_status': 'closed',
42
- 'categories':categories,
78
+ 41 categories':categories,
43
- 'tag':tag
79
+ 42 tag':tags
44
- }
80
+ 43 }
81
+ 44
82
+ 45 var options = {
83
+ 46 method': 'POST',
84
+ 47 muteHttpExceptions': true,
85
+ 48 headers': headers,
86
+ 49 payload': JSON.stringify(arguments)
87
+ 50 };
88
+ 51
89
+ 52 var response = UrlFetchApp.fetch(apiUrl, options);
90
+ 53 var responseJson = JSON.parse(response.getContentText());
91
+ 54
92
+ 55 return responseJson;
93
+ 56 }
94
+ 57
95
+ 58
96
+ 59 /////////////////////////////////////////////////
97
+ 60 /*
98
+ 61 関数概要
99
+ 62 wordpressに画像をアップロードし、その結果を返す
100
+ 63 引数
101
+ 64 siteUrl サイトのURL
102
+ 65 user API認証するためのユーザー名
103
+ 66 pass API認証するためのパスワード
104
+ 67 imageUrl 画像URL
105
+ 68 戻り値
106
+ 69 アップロード結果
107
+ 70 */
108
+ 71 function postImage(siteUrl, user, pass, imageUrl) {
109
+ 72
110
+ 73 var apiUrl = siteUrl + 'wp-json/wp/v2/media';
111
+ 74
112
+ 75 var headers = {
113
+ 76 Content-Type': 'image/png',
114
+ 77 Content-Disposition': 'attachment;filename=IMG_9456-2.jpg',
115
+ 78 accept': 'application/json',
116
+ 79 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass)
117
+ 80 };
118
+ 81
119
+ 82 var options = {
120
+ 83 method': 'POST',
121
+ 84 muteHttpExceptions': true,
122
+ 85 headers': headers,
123
+ 86 payload': UrlFetchApp.fetch(imageUrl)
124
+ 87 };
125
+ 88
126
+ 89 var response = UrlFetchApp.fetch(apiUrl, options);
127
+ 90 var responseJson = JSON.parse(response.getContentText());
128
+ 91
129
+ 92 return responseJson;
130
+ 93 }
131
+ ```
45
132
 
133
+ ### 試したこと 問題1 アイキャッチ画像
134
+ 1.取得する画像を以下の場所に変えてみましたが、同じエラーでした。
46
- var options = {
135
+    ・google photoのアドレス
136
+    ・プログラムのあるURL
47
- 'method': 'POST',
137
+ 2.すでにアイキャッチ画像として登録されているものを設定した場合は登録できました。
138
+ (プログラム修正箇所)
139
+    31,33行をコメントアウト
48
- 'muteHttpExceptions': true,
140
+    38 featured_media': 35
49
- 'headers': headers,
50
- 'payload': JSON.stringify(arguments)
51
- };
52
141
 
142
+ ### 試したこと 問題2 タグ
143
+ 最初は数値を直接指定していました。
144
+  22行目 var tags = 26;
53
- var response = UrlFetchApp.fetch(apiUrl, options);
145
+ これを 配列にしてみましたが状況は変わりませんでした。
54
- var responseJson = JSON.parse(response.getContentText());
55
146
 
147
+ ### 補足情報(FW/ツールのバージョンなど)
148
+ Windows 10 Home
56
- return responseJson;
149
+ WordPress 5.7.2
57
- }
58
-
59
- ```
150
+ プラグイン
60
-
61
- よろしくお願いいたします。
151
+  Application Passwords バージョン 0.1.3