GPTからWordPressへAPI経由でブログ投稿する方法【GCP + ロリポップ対応】

API連携

はじめに

最近では、ChatGPTなどのAIを活用して自動でブログ記事を生成し、WordPressにAPI経由で投稿したいというニーズが増えています。この記事では、ロリポップのレンタルサーバー上で運用しているWordPressに対して、GCPで構築したAPIを経由して安全に記事投稿する方法を詳しく解説します。

GASとかZapierじゃなくて、GPTから直接投稿したいんだよね!

うん、そのためにCloud FunctionsでラッパーAPIを作るのがベストだよ!

前提条件と準備

1. WordPress 側の準備

  • REST API有効化: セキュリティ系プラグインで制限されていないか確認。
  • 投稿用ユーザーの作成: 「投稿者」以上の権限。
  • WAFと海外アタックガードの設定: 一時的に無効化が必要。

なぜ直接APIを呼び出せないのか?

ロリポップのサーバーにはセキュリティ制限が多く、外部サーバーから直接REST APIにアクセスするとエラーになることがあります。

PHPが古い場合、Basic認証が効かないこともあるよね…

そのため、GCP(Google Cloud Platform)に中継用のラッピングAPIを用意し、GPTや外部サービスはそのAPIを叩くだけという形にするのが現実的です。

GCP上に投稿ラッパーAPIを構築する

1. Cloud FunctionsでAPIエンドポイントを作成

@https_fn.on_request()
def post_to_wordpress(req: https_fn.Request) -> https_fn.Response:
    return post_to_wordpress_handler(req)

認証付きで、WordPressへ記事投稿を行う本体処理はこちらです:

def handle_request(req: https_fn.Request) -> https_fn.Response:
    provided_api_key = req.headers.get('X-API-KEY')
    if not provided_api_key or provided_api_key != EXPECTED_API_KEY:
        return https_fn.Response("Unauthorized", status=401)

    # 省略...

    wp_client = WordPressClient(wp_url_base, wp_user, wp_password)
    post_response = wp_client.create_post(title, content, image_base64, category_names)

    return https_fn.Response(json.dumps({
        "id": post_response.get("id"),
        "link": post_response.get("link")
    }), status=200, mimetype='application/json')

2. セキュリティはAPIキーで管理

  • クライアントはX-API-KEYヘッダーにAPIキーを指定。
  • 認証失敗時は401を返して保護。

OpenAPI定義でGPTや他のサービスからの接続を自動化

openapi: 3.1.0
info:
  title: ブログ投稿API
  version: "3.0"
paths:
  /:
    post:
      summary: ブログ記事を投稿する
      security:
        - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PostRequest"

詳細はOpenAPIのスキーマ定義で管理できます。

注意点とトラブル対策

トラブル例 対処法
投稿できない ロリポップのWAF・海外アタックガードを一時無効化
Basic認証でエラー PHPバージョンが古い可能性あり。7.4以上を推奨
アイキャッチ画像が反映されない WordPress側のメディアライブラリ制限を確認

まとめ

  • GPTなどからWordPressへ投稿するには直接投稿は厳しいことが多い。
  • GCPのCloud Functionsで認証付きラッパーAPIを構築するのがベストプラクティス。
  • セキュリティはAPIキーで担保し、WordPress側の設定にも注意。

これで自動投稿の夢が叶うね!

あとは記事を量産するだけだ!

WordPressとGCPを連携した投稿自動化は、工夫次第でさらに拡張可能です。GPTで生成→APIで投稿の流れをぜひ取り入れてみてください!

コメント

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