質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

2回答

2490閲覧

Google Apps Script から WordPressに自動投稿するときタグがつかない

fujimido

総合スコア1

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

タグ

特殊な記法により文書に埋め込む形で記述される付加情報をタグと呼びます。文書構造や書式、文字飾りなどを指示したり、画像や他の文書へのリンクを埋め込むことができる。

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2021/07/19 07:44

編集2021/07/19 14:41

前提・実現したいこと

GASからWordPressに記事を自動投稿するプログラムを作っています。
投稿時に以下をつけたいです。
・アイキャッチ画像
・タグ
・カテゴリ

下のページを参照して自動投稿プログラムを作りましたがアイキャッチ画像とタグが入りません。
カテゴリは入ります。
「GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法」
https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail

発生している問題・エラーメッセージ その1 アイキャッチ画像が入らない

var responseJson = JSON.parse(response.getContentText());
この関数の実行時にエラーとなります。

エラーメッセージ SyntaxError: Unexpected token < in JSON at position 0 postImage @ コード.gs:90 postReport_thumbnail @ コード.gs:31

発生している問題・エラーメッセージ その2 タグが設定できない

アイキャッチ画像の処理(31,33,38行)をコメントアウトして実行したところ
エラーはなくなり、自動投稿できました。
その際、カテゴリは設定できましたが、タグが設定できません。

エラーメッセージは出ません。正常終了します。

該当のソースコード

GAS

11 //GASでワードプレスを自動投稿する方法~REST APIによる記事の新規作成手順 22 //https://auto-worker.com/blog/?p=2475 33 44 //GASを使ってアイキャッチ画像付でWordPressに自動投稿する方法 55 //https://arukayies.com/gas/wordpress-rest-api/postreport-thumbnail 66 77 88 /* 99 関数概要 1010 wordpressに記事を投稿する処理(アイキャッチ画像付) 1111 戻り値 1212 実行結果 1313 */ 1414 function postReport_thumbnail() { 1515 1616 var siteUrl = 'https://xxxx2020.com/'; 1717 var user = 'xxxx2020'; 1818 var pass = 'BIIa UHbE knYr f7DE JMy6 xxxx'; 1919 var title = '自動投稿テスト(アイキャッチ画像付)'; 2020 var content = 'これは自動投稿です。(アイキャッチ画像付)'; 2121 var categories = [23,49]; 2222 var tags = [26,42,1,100,99]; 2323 2424 var apiUrl = siteUrl + 'wp-json/wp/v2/posts'; 2525 2626 var headers = { 2727 Content-Type': 'application/json', 2828 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass) 2929 }; 3030 //画像をアップロードする 3131 var imageID = postImage(siteUrl, user, pass, 'http://xxxx2020.com/wp-content/uploads/2021/02/IMG_9456-2.jpg'); 3232 //アップロードした結果の画像IDを取得 3333 imageID = Number(imageID["id"]) 3434 3535 var arguments = { 3636 title': title, 3737 content': content, 3838 featured_media': imageID, 3939 status': 'publish', 4040 comment_status': 'closed', 4141 categories':categories, 4242 tag':tags 4343 } 4444 4545 var options = { 4646 method': 'POST', 4747 muteHttpExceptions': true, 4848 headers': headers, 4949 payload': JSON.stringify(arguments) 5050 }; 5151 5252 var response = UrlFetchApp.fetch(apiUrl, options); 5353 var responseJson = JSON.parse(response.getContentText()); 5454 5555 return responseJson; 5656 } 5757 5858 5959 ///////////////////////////////////////////////// 6060 /* 6161 関数概要 6262 wordpressに画像をアップロードし、その結果を返す 6363 引数 6464 siteUrl サイトのURL 6565 user API認証するためのユーザー名 6666 pass API認証するためのパスワード 6767 imageUrl 画像URL 6868 戻り値 6969 アップロード結果 7070 */ 7171 function postImage(siteUrl, user, pass, imageUrl) { 7272 7373 var apiUrl = siteUrl + 'wp-json/wp/v2/media'; 7474 7575 var headers = { 7676 Content-Type': 'image/png', 7777 Content-Disposition': 'attachment;filename=IMG_9456-2.jpg', 7878 accept': 'application/json', 7979 Authorization': 'Basic ' + Utilities.base64Encode(user + ":" + pass) 8080 }; 8181 8282 var options = { 8383 method': 'POST', 8484 muteHttpExceptions': true, 8585 headers': headers, 8686 payload': UrlFetchApp.fetch(imageUrl) 8787 }; 8888 8989 var response = UrlFetchApp.fetch(apiUrl, options); 9090 var responseJson = JSON.parse(response.getContentText()); 9191 9292 return responseJson; 9393 }

試したこと 問題1 アイキャッチ画像

1.取得する画像を以下の場所に変えてみましたが、同じエラーでした。
・google photoのアドレス
・プログラムのあるURL
2.すでにアイキャッチ画像として登録されているものを設定した場合は登録できました。
(プログラム修正箇所)
31,33行をコメントアウト
38 featured_media': 35

試したこと 問題2 タグ

最初は数値を直接指定していました。
22行目 var tags = 26;
これを 配列にしてみましたが状況は変わりませんでした。

補足情報(FW/ツールのバージョンなど)

Windows 10 Home
WordPress 5.7.2
プラグイン
Application Passwords バージョン 0.1.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fujimido

2021/07/19 14:43

質問に不慣れで大変失礼いたしました。 テンプレートに従い質問を修正しました。
guest

回答2

0

var arguments = {
(略)
'tag':tag

Posts API Reference | WP REST API v2 Documentation を見ると

tags
Limit result set to all items that have the specified term assigned in the tags taxonomy.

となっているので正しく記載するとどうなりますか?

投稿2021/07/19 09:09

CHERRY

総合スコア25218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fujimido

2021/07/19 14:44

ご回答ありがとうございます。 配列にしてみましたが、状況は変わりませんでした。 カテゴリのほうは、配列にしたところ、複数指定ができました。
guest

0

Posts API Reference | WP REST API v2 Documentation
tagもcategoriesもarrayで渡す事になっているようですが、
質問文中のコードだとarrayになっていないからじゃないでしょうか。

投稿2021/07/19 07:50

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fujimido

2021/07/19 14:45

ご回答ありがとうございます。 配列にしてみましたが、状況は変わりませんでした。 カテゴリのほうは、配列にしたところ、複数指定ができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問