WordPressに自動投稿する仕組み ― しずかなニュースの開発記録

小さなプロダクト

前回の記事では、海外ニュースのRSSを収集し、Google スプレッドシートへ保存する仕組みを紹介しました。
(→「RSSからデータ取得 ― しずかなニュースの仕組みの開発記録」)

今回は、その次の段階である
「整理したニュースを WordPress に自動投稿する仕組み」
について解説します。

データ整理はスプレッドシート、処理は Google Apps Script(以下 GAS)、最終的な表示は WordPressという流れで、自動化を目指します。


投稿方法の検討

自動投稿の方式として、次の3案を比較しました。


1) 直接GASからWordPressへ投稿(REST API)

GASから WordPress に直接データを送り、そのまま記事を作成する方法です。
WordPressには外部から記事を送れる仕組み(REST API)があり、公開設定やカテゴリ指定なども細かくコントロールできます。

一方で、レンタルサーバでは「海外からのアクセスを自動でブロックする設定」が有効な場合があり、GAS(Google側)からの通信が遮断される可能性があります。そのため、この方式は採用しませんでした。


2) メールを使って投稿

WordPressには、特定アドレスへメールを送信すると記事として取り込む仕組みがあります。
GASからメールを送るだけで済むため、設定が簡単なのが利点です。

ただし、

  • 件名や本文に決まった書き方が必要
  • 取り込み失敗時の処理が手作業
  • 投稿内容の調整がしづらい
    といった課題があり、安定運用には向かないため見送りました。

3) WordPress側のプラグインを呼び出す(Pull形式)

最終的に採用したのが、この方式です。

まず、GASで
「スプレッドシートの内容を JSON(データ)として返す」
Webアプリを作成します。

次に、WordPress側に
「その JSON を取り込み、記事として公開する」
専用プラグインを用意します。

流れとしては次の通りです。

1) スプレッドシート → GASで整形
2) GASが JSON を返す
3) WordPressのプラグインが JSON を受け取る
4) 記事として そのまま公開(publish)

WordPress側のプラグインは、特定のURLを開くと投稿処理が実行される仕組みにしておき、GASから UrlFetchApp でそのURLを「呼ぶ」ことで投稿が動きます。

GAS →(URL呼び出し)→ WordPressプラグイン → 投稿

セキュリティ面では、URLに「合言葉(token)」を付けてチェックします。最低限の仕組みでも、外部から勝手に使われることを防げます。

また、JSONにタイトル/本文/引用元/カテゴリ/タグなどを含められるため、表示や分類を柔軟にコントロールできます。

WordPress側で投稿処理を完結できるため、手作業で管理画面にログインする必要がなく、自動掲載との相性も良い方法です。


まとめ

今回は、WordPressへニュースを自動投稿する方法を検討し、
GASで作ったJSONを、WordPress側プラグインが取得 → 公開する
という Pull形式 を採用しました。
この構成は、仕組みがシンプルで、サーバ環境の制限(海外アクセス制限など)の影響も受けにくく、運用しやすい点が大きなメリットです。

次回は、

WordPress:JSONを受け取り投稿するプラグイン
の具体的なコードを紹介します。