皆さんこんにちは、横浜で清掃業をしているヤスです。
のアプリを作りましたね。今回はこちらです。
1. 記事制作7時間→5分を実現するアプリです
SEOブログ運営者なら誰もが感じる悩みがあります。競合調査に2時間・記事構成を考えるのに1時間・本文を書くのに4時間…合計7時間。しかもこれを毎回繰り返す。このアプリを使えばキーワードを入力するだけで全工程が約5分で完成します。
今回紹介する「SEO記事自動生成くん」は以下を全自動で実行します。
- Jina AI検索APIで競合記事を3方向から並列収集(約25秒で完了)
- 競合記事の共通点・差別化ポイント・検索意図を分析
- タイトル3案・メタディスクリプション・H2×5〜6個・H3付きの記事構成を設計
- 4,000字相当の記事本文を全文生成
- WordPress REST APIで下書きとして自動投稿
- X・LinkedIn・Threads用のSNS投稿文を3媒体分一括生成
実際に「Dify 使い方」というキーワードでテストしたところWordPressに「Difyの使い方完全ガイド:AI初心者でも簡単にアプリ開発が可能」という記事が下書きとして自動保存されました。
2. このアプリの最大の技術的特徴:並列HTTP実行
このアプリで最も重要な技術が「並列HTTP実行」です。
| 比較 | 通常(直列実行) | このアプリ(並列実行) |
| HTTP①完了 | 25秒後 | 同時スタート |
| HTTP②完了 | 50秒後 | 約25秒後(同時完了) |
| HTTP③完了 | 75秒後 | 約25秒後(同時完了) |
| 合計時間 | 約75秒 | 約25秒(3倍速) |
💡 Difyで並列実行するには開始ブロックから複数のブロックに同時に矢印をつなぐだけです。特別な設定は不要で自動的に並列実行されます。
3. 【正直レポート】発生した失敗5つの全記録
このアプリを完成させるまでに5つの壁がありました。全て詳しく公開します。
失敗①:WordPressのURLにサイト名が入ってInvalid IDNA hostnameエラー
エラー:Invalid IDNA hostname: ‘Dify実践ブログ|49歳・IT未経験から始めるAI活用’ 原因:HTTPリクエストのURL欄に ドメインではなくサイト名が入力されていた 解決: 間違い:https://Dify実践ブログ…/wp-json/wp/v2/posts 正しい:https://ai-shoshinsha-49.com/wp-json/wp/v2/posts WordPressの設定→一般→サイトアドレスURLを確認する
失敗②:URLのhttps://が二重になって500エラー
エラー:500 Internal Server Error 原因: https://ai-shoshinsha-49.com をコピーして URL欄に貼り付けたところ https://https://ai-shoshinsha-49.com になった 解決: 先頭の https:// を1つ削除する
失敗③:Base64認証が通らず403エラーが続く
エラー:403 Forbidden 原因: Base64エンコードの形式が正しくなかった または ConoHa WINGのREST API設定が 無効になっていた 解決: ① ユーザー名を確認する(メールアドレスではなく英数字) ② アプリケーションパスワードを新規生成する ③ y-sekino:AbCd EfGh IjKl… の形式で base64encode.org でエンコードする ④ Authorization: Basic (エンコード文字列) に設定 ⑤ ConoHa WINGの管理画面で REST API無効化がオフになっているか確認する
失敗④:RAW TEXTが空欄のまま400エラー
エラー:400 Bad Request 原因: HTTPリクエスト4のボディ(RAW TEXT)欄が 空欄のまま送信されていた 解決: RAW TEXT欄をクリックして {{WORDPRESS投稿データ作成.post_data}} をサジェストから選択して設定する
失敗⑤:コード実行②でtitleの抽出が失敗してpost_dataが空になる
症状: コード実行②の出力が {}(空) 原因: LLM②のタイトル出力形式が ① 「Difyの使い方完全ガイド」 という形式だったため 正規表現 r’① \s*(.+)’ が 引用符込みでタイトルを取得していた 解決: 正規表現を以下に変更: r’①\s*[「]?(.+?)[」]?\s*$’
💡 失敗④と⑤は特にハマりやすいポイントです。RAW TEXTの設定忘れとコード実行の正規表現パターンは作成後に必ず確認してください。
4. 全体のブロック構成(14ブロック)
| # | ブロック名 | 種類 | 役割 |
| 1 | ユーザー入力 | 開始 | キーワード・ターゲット・文字数・文体を入力 |
| 2 | 上位記事を収集 | HTTPリクエスト① | Jina AIで「とは・初心者向け」で検索 |
| 3 | 競合構成を収集 | HTTPリクエスト② | Jina AIで「完全ガイド・おすすめ」で検索 |
| 4 | 最新情報を収集 | HTTPリクエスト③ | Jina AIで「最新・2024・2025」で検索 |
| 5 | データ削減 | コード実行① | 3つの検索結果を各2000字に削減 |
| 6 | 競合分析 | LLM① | 共通点・差別化・検索意図を分析 |
| 7 | 記事構成設計 | LLM② | タイトル3案・構成・ライティング指示を生成 |
| 8 | 本文全文生成 | LLM③ | 4,000字の記事本文を全文生成 |
| 9 | SNS投稿文生成 | LLM④ | X・LinkedIn・Threads用を一括生成 |
| 10 | WPデータ整形 | コード実行② | タイトル抽出・HTML変換・JSON整形 |
| 11 | WordPress投稿 | HTTPリクエスト④ | REST APIで下書きとして自動投稿 |
| 12 | 最終整形 | テンプレート変換 | 全レポートを1つにまとめる |
| 13 | 出力 | 終了 | 最終レポートを出力 |
5. 事前準備|必要なものはこれだけ
- Difyのアカウント(無料プランOK)
- OpenAIのAPIキー(GPT-4oが使えるプラン)
- Jina AIのAPIキー(無料・https://jina.ai/ で取得)
- WordPressサイト(REST APIが有効になっていること)
- WordPressのアプリケーションパスワード(ユーザー→プロフィールで生成)
- 所要時間:90〜120分
⚠️ ConoHa WINGをご利用の場合はサイトセキュリティのREST API無効化がオフになっているか確認してください。デフォルトで無効化されている場合があります。
6. 重要な設定ポイント
並列HTTPリクエストの設定方法
Difyで並列実行するには開始ブロックから3つのHTTPリクエストブロックに同時に矢印をつなぐだけです。
設定方法: 開始ブロックの右側から矢印を伸ばす → HTTPリクエスト①につなぐ → 開始ブロックから再度矢印を伸ばす → HTTPリクエスト②につなぐ → 同様にHTTPリクエスト③につなぐ 3つのHTTPが同時に実行され 全部完了するとコード実行①に進みます
WordPress認証の設定方法
- WordPressの管理画面→ユーザー→プロフィールを開く
- 「新しいアプリケーションパスワード名」に「Dify連携」と入力
- 「アプリケーションパスワードを追加」をクリック
- 表示されたパスワードをコピー(この画面を閉じると二度と見られない)
- https://www.base64encode.org/ で「ユーザー名:パスワード」をBase64エンコード
- DifyのHTTPリクエスト④のヘッダーに「Authorization: Basic (エンコード文字列)」を設定
⚠️ ユーザー名はメールアドレスではなく英数字のユーザー名を使ってください。「y-sekino」のような形式です。
コード実行②(WordPress投稿データ作成)のポイント
import re import json def main(article_body, article_structure, wp_post): title_match = re.search(r’①\s*[「]?(.+?)[」]?\s*$’, article_structure, re.MULTILINE) title = title_match.group(1).strip() if title_match else “新しい記事” meta_match = re.search(r’メタディスクリプション.*?\n(.+)’, article_structure) meta = meta_match.group(1).strip() if meta_match else “” content = article_body.replace(“\n”, “<br>”) content = re.sub(r’## (.+)’, r'<h2>\1</h2>’, content) content = re.sub(r’### (.+)’, r'<h3>\1</h3>’, content) post_data = json.dumps({“title”: title, “content”: content, “status”: “draft”, “excerpt”: meta}, ensure_ascii=False) return {“post_data”: post_data, “title”: title}

7. テスト実行と確認ポイント
| 項目 | 入力内容 |
| keyword | Dify 使い方 |
| target_audience | AIに興味があるビジネスパーソン・初心者 |
| site_concept | AI活用術を初心者向けにわかりやすく解説するブログ |
| article_length | 4,000字(標準・中級向け) |
| wp_post | 下書きとして保存する |
| tone | わかりやすい・親しみやすい |
- HTTP①②③が並列でSUCCESSになっているか
- LLM①:競合の共通点・差別化3点・検索意図が出ているか
- LLM②:タイトル3案・メタディスクリプション・全H2構成が出ているか
- LLM③:記事本文が全文出力されているか
- LLM④:3媒体のSNS投稿文が出ているか
- WordPressの投稿→下書きに記事が保存されているか

8. まとめ
- キーワードを入力するだけでJina AIが競合記事を並列収集・差別化分析・記事構成・本文全文・SNS投稿文まで全自動生成
- 並列HTTP実行で3つの検索が25秒で完了(直列の3倍速)
- WordPress REST APIで下書きを自動投稿。記事制作7時間→5分に短縮
- URLの二重https・403認証エラー・RAW TEXT未設定・コード実行の正規表現など5つの失敗談を全公開
- 14ブロック構成。手順通りに進めれば90〜120分で完成
SEOブログを運営している方・記事制作の時間を短縮したい方・WordPress×AI連携に挑戦したい方に特におすすめのアプリです。失敗談を参考にすることで同じ壁にぶつからずに完成させることができます。
以前も同じようなアプリを作りましたが、ちょっとグレードアップした
気がします。だけど、また同じ所でつまずいたような、、、
次回はせせっかくなので、今回のアプリで作った記事をそのまま
アップしようと思います。
次におすすめの記事
【解決編】バラバラの道を束ねる魔法!「変数集約器」で二刀流アプリを完成させよ
xもやってるので良かったら見に来てください
次回も是非お楽しみに!
失敗から学ぶことは多いですね。


コメント