1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChatGPTでJava+XML-RPCでのWordpressへの投稿方法を調べた話

Posted at

はじめに

こんにちは。いりくら@アノードです。
完全自動運用のニュースメディア「BizAIdea」 を開発/運用しているのですが、Wordpressへの記事投稿の自動化に JavaからXML-RPC を利用した際、ChatGPTに大いに助けてもらったので、その流れをご紹介します。

なぜ Wordpressの投稿にXML-RPC を使ったか?

本来、Wordpressへのプログラムによる投稿は標準のAPIを利用するのが本筋かと思いますが、Wordpressを立てているレンタルサーバーのConohaWingではAPIの利用制限されているようで、利用できませんでした。
(私の調べ方が不足していたらすみません。)

API以外でもXML-RPCを利用することでプログラムからの記事投稿ができるようだったので、今回はXML-RPCを利用することとしました。

ちなみにJavaを利用したのは、クローラー等の関連するプログラムがJavaだった都合によるもので、もちろんPythonやPHPなどでも同様のことができると思います。

そもそもXML-RPCとは?

ネットで調べるといろいろ出てきますが、ChatGPTに簡潔にまとめてもらいました。

image.png

注意点

XML-RPC(xmlrpc.php) は Wordpressへのクラッキングのターゲットとされることが非常に多いです。(ほぼ確実に攻撃を受けます。)
接続元のIPを制限するなど、脆弱性対策が必須となります。

Java + XML-RPC の実装方法が分からない、、

Javaを使ったWordpressのXML-RPCでの投稿なのですが、いろいろ調べたものの、APIの仕様書のようなものを見つけられませんでした、、(私の調べ方が不足していたらすみません。)

そんな時にやはり便利なのがChatGPT。ほぼ完璧なサンプルコードを書いてくれました。

image.png

サンプルコード

機能の実現に必要となる以下の処理の仕様と実装方法について、ChatGPTに確認してみました。

  • アイキャッチ用の画像のアップロード方法
  • 本文の投稿方法
  • 記事にアップロード済のアイキャッチ画像を指定する方法
  • 投稿する記事のカテゴリーの指定方法
  • 投稿する記事のタグの指定方法

ChatGPTとのやり取りや、作成してもらったサンプルコードは下記から参照できます。

サンプルコード作成のやり取り

途中、アイキャッチ画像のアップロード処理に失敗したりしたので、修正方法も確認しています。

こちらのサンプルコードを利用することで、無事投稿をJavaから行うことができました。

投稿の自動化

BizAIdea」 では、以下のプログラム化を実現することで、メディア運営を完全自動化しました。

・記事キュレーションの自動化
 ⇒クローラーを使って15メディアから最新のAI記事を取得

・記事作成の自動化
 ⇒集めたニュース内容をChatGPTを使ってサマリーし、記事を自動作成

・記事の自動投稿
 ⇒今回内容です

・記事のSNSシェア
 ⇒XとFacebookへの記事シェアを自動化しています。

これらの詳細も、また時間のある時に書ければと思っています。

おわりに

改めて実装過程を振り返ると、ChatGPTに頼りきりでした。。
ChatGPTが無くても試行錯誤を繰り返して何とか実装はできたかもしれませんが、掛かる時間を相当短縮できたと思います。

BizAIdea開発の全体については、note に書きましたので、良かったら見てみてください。
ChatGPTで「完全自動運用」のWebメディアを作ってみた話

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?