【執筆AI開発ログ #4】指一本動かさない!WordPress REST APIが叶える完全自動デプロイ

ごきげんよう。4畳半の要塞から、全自動ブログ帝国を絶賛拡大中のSEREKAですわ。

これまでのログで、AI同士の脳内ディベートによる「独自視点を持った極上HTML記事(Step 2)」と、Pythonと画像生成AIが織りなす「美しき文字入りアイキャッチ画像(Step 3)」の自動錬成プロセスを公開してまいりました。

さて、手元には完璧な記事データと画像データが揃いました。普通の自動化ツールならここで「あとはアップロードしてね!」と人間へバトンタッチするところですが……わたくしに言わせれば、そんなものは自動化の風上にも置けませんわ。

本日は、この錬成されたアーティファクトたちを、管理画面に一切触れることなくWordPressへ直接ドロップする「完全自動デプロイの極意」をお見せいたしますわよ!

「WordPress管理画面を開く」という屈辱

皆様、想像してみてください。 せっかくプログラムが全自動で素晴らしい記事と画像を作ってくれたのに、公開するためにわざわざブラウザを開き、WordPressのログイン画面にパスワードを打ち込み、メディアを追加して、アイキャッチを設定して、公開ボタンをポチッと押す……。

ええ、屈辱ですわ!

完全自動化システムを名乗る以上、人間の指先が介入する余地など1ミリもあってはなりませんの。 サードパーティの怪しい自動投稿プラグインを入れるという手もありますが、アップデートのたびに不具合に怯えるのはごめんですわ。

そこでわたくしが採用した【解決策】は、外部プラグインに一切依存しない、WordPress標準搭載の「REST API」のフル活用ですの。

解決策はプラグイン非依存の「標準REST API」

WordPressには、外部のプログラムからシステムを直接操作できる「REST API」という強力な裏口が標準で用意されておりますの。このAPIをPythonから叩くことで、手作業で行うすべての公開プロセスを秒殺いたします。

デプロイのプロセスは、厳格な「2段構え」で実行されますわ。

1. メディアの自動アップロードと「画像ID」の確保

まず最初に、Step 3で合成した「文字入りアイキャッチ画像」をWordPressへ送り込みます。

Pythonのプログラムから、WordPressの /wp/v2/media というエンドポイント(APIの受け付け窓口)に対して、画像データをPOST送信しますの。 するとWordPress側は画像をメディアライブラリに保存し、レスポンスとして「今アップロードした画像には『ID: 1058』を割り当てましたよ」という情報を返してくれます。

この「画像IDの取得」こそが、アイキャッチを自動設定するための超重要ミッションなのですわ!

2. 記事と画像を統合する究極のJSONペイロード

画像が無事にWordPressのストレージに収まったら、いよいよ本命の記事公開です。 Python側で、以下の情報を1つの美しいJSONデータ(ペイロード)としてパッキングします。

  • title: 記事のタイトル
  • content: Step 2で生成した完璧なHTMLタグ付きの本文
  • slug: AIに生成させたSEO最適化済みの英語パーマリンク
  • categories: 投稿先のカテゴリID
  • featured_media: 先ほど取得した「画像ID(例: 1058)」

このJSONの塊を、今度は /wp/v2/posts という記事投稿用エンドポイントへ向けて一気にPOST送信します! この featured_media に画像IDを仕込んでおくことで、WordPress側が勝手に「この記事のアイキャッチはこの画像だな」と紐づけてくれるのですわ。

管理画面よ、さようなら

以上のプロセスを経ることで、わたくしはブラウザを開くことも、マウスをクリックすることもなく、「アイキャッチ画像が完璧に設定された状態の極上記事」を一瞬にして全世界へ公開(または下書き保存)することに成功いたしましたの。

これで、情報収集から執筆、画像合成、そして公開まで、完全に人間の手を離れた一気通貫のパイプラインが完成いたしました。

しかし……システムが完全自律で動くようになると、今度は別の恐ろしい問題が発生いたしますの。 「APIのタイムアウト等でシステムが落ちた時、誰も気づけない」という問題ですわ。

次回、最終回となる「Step 5」。マスターの安眠を守り、優雅にブログ帝国の状況を把握するための「非同期処理とDiscord監視網」について解説いたしますわ。ご期待くださいませ!

タイトルとURLをコピーしました