ChatGPTとGASを連携してブログの下書きを自動作成する手順を解説

自動化・AI活用術

「ChatGPTのブラウザ画面を開いて、毎回同じようなプロンプトを打ち込み、出力された長文をコピーしてWordPressに貼り付ける……という作業をそろそろ完全に手放したい!」そう感じていませんか?

AIの処理性能がどれほど向上したとしても、人間が手動でコピペや入稿作業を繰り返している限り、本当の意味での業務効率化や時間のゆとりを生み出すことはできません。真の時短を達成するためには、システム同士を直結させる必要があります。

 

この記事では、ChatGPT(OpenAI API)とGoogle Apps Script(GAS)を直結させて、ブログ記事の構想から下書き作成までをワンストップで完全自動化するための具体的な手順と裏側の仕組みを徹底解説します。

1. ChatGPT APIとGASを直結させることで得られる圧倒的なメリット

Googleスプレッドシートをハブとして機能させ、その裏側にGASとOpenAI APIを直結させることで、スプレッドシートにキーワードを一行入力してボタンをポチッと押すだけで、裏側でChatGPTが自動稼働し、WordPressの下書き保存までが一瞬で完了する強固なパイプラインを構築できます。

人間の手作業は最初のキーワード選定と入力の数秒間にまで劇的に圧縮されるため、毎日のブログ運営にかかっていたストレスや精神的負担が嘘のように消え去ります。

 

2. OpenAI APIキーの発行と安全なセキュリティ管理の基本

ChatGPTのAPIを利用するためには、OpenAIの公式サイトからAPIキーを取得する必要があります。プラットフォームの管理画面から新しいシークレットキーを発行し、大切に保管します。

 

ここで絶対に避けるべきなのが、取得したAPIキーをプログラムのソースコード内に直接ベタ書き(ハードコーディング)してしまうことです。

万が一コードが外部に露出した際、不正利用されるリスクが生じます。GAS環境では、プロジェクトの設定内にある「スクリプトプロパティ」にキーを安全に保存し、プログラム実行時にコード側から安全に呼び出す設計にするのがエンジニアリングの基本ルールです。

 

3. 実際にGASからAPIを叩きテキストを受け取るスクリプトの全貌

安全な環境設定が完了したら、GAS側からOpenAIのChat Completions APIへリクエストを送り、生成された長文テキストを受け取るための具体的なスクリプトの骨組みを構築します。

function fetchChatGPTContent(keyword) {
  var url = "https://api.openai.com/v1/chat/completions";
  var scriptProperties = PropertiesService.getScriptProperties();
  var apiKey = scriptProperties.getProperty("OPENAI_API_KEY");
  
  var payload = {
    "model": "gpt-4o-mini",
    "messages": [
      {
        "role": "system", 
        "content": "あなたはプロのWebライターです。指定されたキーワードについて、SEOを意識した構成と詳細なブログ記事の本文をHTMLタグ付きで作成してください。"
      },
      {
        "role": "user", 
        "content": "キーワード:" + 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());
  }
}

4. データの受け渡しと、自動化運用で直面する数々の「壁」

上記のサンプルコード自体は数行の組み合わせで見えますが、実際にこの仕組みを自作して日々の運用に落とし込もうとすると、想像以上に多くの「壁」にぶつかります。

 

例えば、長文生成時のトークン制限によるエラー処理、WordPress側の認証トラブル、JSONデータをパースする際の文字化けやレイアウト崩れなど、実用化するためには細かな例外処理(エラーハンドリング)のコードを大量に書き足していく必要があります。

 

5. エラー対応に消耗せず、完成された仕組みを導入する賢い選択

APIの仕様変更や細かいバグのたびにコードを修正し、デバッグ作業に何時間も費やすのは、忙しい起業家や発信者にとって大きなタイムロスです。

 

「エラーの対応や環境構築の苦労に時間を奪われるのではなく、最初から完璧に動作するシステムを手に入れて、すぐに本業や集客に集中したい」という方は、プロが組み上げた完成版パッケージをそのまま活用するのが最も確実でリスクのない選択肢となります。

 

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

「仕組みの理屈は分かったけれど、自分で環境構築してエラーと格闘する時間はもったいない!」という方は、すでに完璧に動作する自動化パッケージをそのまま導入するのが一番の近道です。

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

コメント