ブログ記事をAIで自動化する方法は?スプレッドシートとWordPressで効率化する仕組み

自動化・AI活用術

毎日「今日は何を書こう…」とパソコンの前で頭を抱え、ネタを絞り出し、構成を考え、何千文字もの文章を打ち込んでWordPressにコピペして下書き保存する……。
気づけば数時間以上が経ち、本来やりたかった仕事やプライベートの時間が削られていませんか?

 

ブログ集客の重要性は分かっていても、毎日の泥臭い作業に追われて疲弊してしまう起業家や発信者は後を絶ちません。

しかし、Googleスプレッドシート、AI(OpenAI API)、そしてWordPressのREST APIを組み合わせることで、この一連のブログ記事作成・入稿プロセスを完全に自動化する仕組み(パイプライン)を構築することが可能です。

 

この記事では、単なる概念論ではなく、仕組みの全体像から実際のデータ設計、GASによるAPI連携の具体的なコードと実装のポイントまで、AIを活用している人ならこの記事を読みながら自力で環境構築ができるレベルの解像度で徹底解説します。

 

1. ブログ記事自動化の全体像と裏側で動く「3つのピース」

ブログの自動化システムは、魔法のように一瞬で裏側が動くわけではありません。
実際には、それぞれ得意分野を持った「3つのピース」をAPI(アプリケーション・プログラミング・インターフェース)でガッチリと連結させることで成立しています。

  • ① Googleスプレッドシート(データベース兼コントロールタワー): 記事のネタやキーワードを管理し、自動化のスイッチを押すための司令塔です。
  • ② Google Apps Script / GAS(自動化のエンジン): スプレッドシート上で動作するプログラム環境。スプレッドシートのデータを読み込み、外部のAIやWordPressへ指示を飛ばす「神経網」の役割を果たします。
  • ③ AI API & WordPress REST API(実働部隊): AIがキーワードから文章を生成し、WordPressのAPIが受け取って自動で「下書き保存」までを完了させます。

この3つを繋ぐパイプラインさえ作ってしまえば、人間がやるべき作業は「スプレッドシートにキーワードを一行書き込んでボタンを押すこと」の数秒間にまで圧縮されます。

 

2. データを美しく流し込むスプレッドシートの設計図と運用フロー

自動化システムを自作する際、多くの人が見落としがちなのが「データの入り口と出口の設計(スキーマ設計)」です。ここが適当だと、プログラム側でエラーが頻発してしまいます。

 

まずはGoogleスプレッドシートを新規作成し、1行目に次のようなヘッダー(見出し)を設定しましょう。

  • A列(ステータス): 「未処理」「処理中」「完了」「エラー」などの進捗状態を表示・管理する列。
  • B列(ターゲット層): AIに執筆時のペルソナを意識させるためのキーワード(例:「時間のないママ起業家」など)。
  • C列(メインキーワード): 記事で狙うSEOキーワード(例:「WordPress ブログ 自動化」)。
  • D列(生成タイトル): AIが自動作成したブログタイトルが書き出されるセル。
  • E列(本文データ): AIが生成した長文のHTML本文が自動格納されるセル。

GAS側のスクリプトでこのシートをアクティブにし、getRangegetDataRange().getValues()を使ってデータを二次元配列として取得。
上から順番にループ(for文)で回していくことで、複数記事の一括自動生成・自動投稿を実現する設計にします。

 

3. GAS(Google Apps Script)でOpenAI APIを叩く実装のヒントとコード

設計図ができたら、次はGASエディタ(スプレッドシートの上部メニュー「拡張機能」>「Apps Script」)を開き、AI(今回は代表的なOpenAIのChat Completions API)と通信するスクリプトを書き込みます。

セキュリティを担保するため、APIキーはコード内に直接ベタ書きせず、GASの「スクリプトプロパティ」に保存したもの(キー名:OPENAI_API_KEY)を呼び出す形にするのが鉄則です。

function callOpenAI(keyword, target) {
  var scriptProperties = PropertiesService.getScriptProperties();
  var apiKey = scriptProperties.getProperty("OPENAI_API_KEY");
  var url = "https://api.openai.com/v1/chat/completions";
  
  var payload = {
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system", 
        "content": "あなたはプロのWebライターです。指定されたターゲットに向けて、SEOを意識した構成と詳細なブログ記事の本文をHTMLタグ付きで作成してください。"
      },
      {
        "role": "user", 
        "content": "ターゲット:" + target + "\nキーワード:" + keyword
      }
    ],
    "temperature": 0.7
  };
  
  var options = {
    "method": "post",
    "contentType": "application/json",
    "headers": {
      "Authorization": "Bearer " + apiKey
    },
    "payload": JSON.stringify(payload),
    "muteHttpExceptions": true
  };
  
  var response = UrlFetchApp.fetch(url, options);
  var json = JSON.parse(response.getContentText());
  
  if (json.choices && json.choices.length > 0) {
    return json.choices[0].message.content;
  } else {
    throw new Error("AIからの応答取得に失敗しました: " + response.getContentText());
  }
}

この関数をベースにして、スプレッドシートの行データを引数として渡し、返ってきたテキストを該当するセルに書き戻すメインの実行関数(main()など)を周囲に組み込んでいきます。

 

4. 生成したデータをWordPressのREST APIへ流し込み「下書き保存」する手順

AI側から文章が無事に返ってきたら、最終関門である「WordPressへの自動入稿」です。WordPressには標準で強力なREST API(エンドポイント:https://ドメイン/wp-json/wp/v2/posts)が備わっています。

 

外部からセキュリティを突破して安全に記事を投稿するためには、WordPress管理画面の「ユーザー > プロフィール」から「アプリケーションパスワード」を新規発行しておく必要があります。
生成されたパスワードをGAS側の変数にセットし、Basic認証のヘッダーを組み立ててPOSTリクエストを送ります。

function postToWordPress(title, content) {
  var siteUrl = "https://あなたのドメイン/wp-json/wp/v2/posts";
  var username = "あなたのWordPressユーザー名";
  var appPassword = "生成したアプリケーションパスワード";
  
  var headers = {
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + appPassword)
  };
  
  var payload = {
    "title": title,
    "content": content,
    "status": "draft" // ここで「draft」を指定することで公開されず安全に下書き保存される
  };
  
  var options = {
    "method": "post",
    "headers": headers,
    "payload": payload,
    "muteHttpExceptions": true
  };
  
  var response = UrlFetchApp.fetch(siteUrl, options);
  var result = JSON.parse(response.getContentText());
  
  if (response.getResponseCode() === 201) {
    Logger.log("下書き保存成功! 投稿ID: " + result.id);
  } else {
    Logger.log("エラー発生: " + response.getContentText());
  }
}

ステータスにdraftを指定しているため、万が一プログラムにバグがあっても勝手に一般公開されるリスクはなく、必ずWordPressの管理画面に「下書き」として安全にストックされます。

 

5. 自動化システムを「自作するコスト」と「完成版を導入する選択」

ここまで、スプレッドシート、GAS、OpenAI API、そしてWordPress REST APIを連携させる具体的な設計とコードの骨組みを詳しく解説してきました。

このピースを組み合わせることで、完全自動のブログ記事生成・下書きシステムをご自身の環境でゼロから自作することが十分に可能です。

 

しかし、実際の現場でこの仕組みを運用し続けるとなると話は別です。
OpenAIのAPIの仕様変更、WordPressのプラグイン干渉によるREST APIのエラー、文字化けのデバッグ、トークン制限によるタイムアウトなど、完成までに多くの「泥臭い試行錯誤とメンテナンス時間」が確実に発生します。

 

「プログラミングの学習やエラーとの格闘に時間を奪われるのではなく、浮いた時間をすべてビジネスの売上構築やプライベートな充実に使いたい!」という方は、すでにすべてのエラー対策や最適化が完了している完成版の仕組みを導入するのが、もっとも確実でリスクのない選択肢です。

 

\コードの記述やエラー対応の手間をワープしたい方へ/

仕組みの理屈やコードの書き方は分かったけれど、「一から環境構築したり、エラーのデバッグに何時間も取られたくない!」という方は、すぐに導入できる完成版の専用パッケージをご活用ください。

ブログ記事自動化ツールの詳細を見る

コメント