前回(第53話)、私たちは「ブログもSNSも書ける二刀流アプリ」を作ろうとして、大きな壁にぶつかりました。
- **ブログモード(上の道)**を通ったとき
- **SNSモード(下の道)**を通ったとき
この2つの結果を、1つの「スプレッドシート保存ブロック」に渡そうとしても、線のつなぎ先が選べなかったのです。
「道は2つあるのに、出口は1つしかない」というジレンマでしたね。
今回は、この問題を一瞬で解決する魔法のブロック、**「変数集約器(Variable Aggregator)」**を使って、アプリを完成させます。
さらに、今回は**「初心者でも絶対にエラーが出ない、一番簡単な保存設定」**をご紹介します。
Difyの設定を楽にするために、受け取る側のスプレッドシート(プログラム)を少しだけ賢く進化させましょう!まずは完成図です。

ステップ1:魔法のブロック「変数集約器」を置く
分かれた道を一本に合流させる場所を作ります。
- ワークフローの「ブログライター(LLM)」と「SNSライター(LLM)」の後ろあたりにある 「+」 を押します。
- リストの中から 「変数集約器(Variable Aggregator)」 を探してクリックします。
- (※少し下の方にある「高度なブロック」の中にあります)
すると、じょうご(漏斗)のような形をしたブロックが登場します。
これが今回の主役です!
ステップ2:2つの道を「合流」させる
ここが一番の重要ポイントです。
「上から来ても、下から来ても、ここでキャッチしてね!」という設定をします。
- **「変数集約器」**ブロックをクリックして設定を開きます。
- 画面の 「変数を追加」 ボタンを押します。
- まずは 上の道(ブログ用) を登録します。
ブログライター>textを選択。
- もう一度 「変数を追加」 ボタンを押します。
- 次は 下の道(SNS用) を登録します。
SNSライター>textを選択。

これで設定完了!
このブロックは、「ブログ」からボールが来ても、「SNS」からボールが来ても、どちらも 変数集約器.text という一つの名前に統一してくれます。
ステップ3:スプレッドシート(GAS)を賢くする
ここで少し寄り道をして、データの「受け取り側」であるスプレッドシートの設定を、もっと簡単に修正します。
今回は、Difyから「日付」を送るのをやめて、**「スプレッドシート側で勝手に日付を入れる」**ようにします。
こうするとDifyの設定がめちゃくちゃ楽になります。
1. スプレッドシートの1行目を直す

スプレッドシートを開き、1行目(見出し)を以下のように書き換えてください。
| A | B | C | |
| 1 | 日付 | モード | 本文 |
2. プログラム(GAS)を書き換える
スプレッドシートのメニューから 「拡張機能」 > 「Apps Script」 を開きます。
今あるコードを全部消して、以下の**「万能コード」**をコピーして貼り付けてください。
JavaScript
function doPost(e) {
// 1. シートを取得
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 2. Difyから送られてきたデータを取り出す
var data = JSON.parse(e.postData.contents);
// 3. スプレッドシートに行を追加する
// [ 日付(自動), モード(Difyから), 本文(Difyから) ] の順で保存
sheet.appendRow([new Date(), data.mode, data.text]);
return ContentService.createTextOutput("Success");
}

3. 保存して更新(デプロイ)
ここを忘れると動きません!
- フロッピーアイコン 「保存(💾)」 を押す。
- 右上の 「デプロイ」 > 「デプロイを管理」 を押す。
- 右上の 「鉛筆アイコン(編集)」 を押す。
- バージョンを 「新バージョン」 に切り替える。
- 「デプロイ」 ボタンを押す。
これで受け入れ準備は完璧です!
ステップ4:HTTPリクエストの設定(超かんたん版)

さあ、Difyに戻って最後の仕上げです。
以前よりも設定項目が減ってシンプルになっていますよ。
- 変数集約器の後ろに、**「HTTPリクエスト」**ブロックを追加します。
- API:
POSTを選択。 - URL: さっきのGASのURL(環境変数
GOOGLE_SHEET_URL)を選択。 - ボディ(Body):
JSONを選択。 - 以下のコードをコピーして貼り付けます。
JSON
{
"mode": "",
"text": ""
}
- ダブルクォーテーション
""の間にカーソルを置いて、{x}から変数を埋め込みます。"mode": ""の間 ➡{x}➡開始 (Start)>mode"text": ""の間 ➡{x}➡変数集約器>text- (※さっきステップ2で作った変数です!)
これだけでOK!
「日付の設定」など面倒なことは全部カットしました。

ステップ5:いざ、テスト実行!
それでは、本当に動くのか試してみましょう。
右上の「プレビュー」ボタンを押します。
テスト①:ブログモード
- 作成モード:
Blog - 書きたいテーマ:
キャンプの始め方
実行ボタンをポチッ!
……AIが長文を書き始めます。
そして、スプレッドシートを確認すると?
「ドンッ! A列に日付、B列にBlog、C列に長文が入っています!」
テスト②:SNSモード

- 作成モード:
SNS - 書きたいテーマ:
キャンプの始め方
もう一度実行ボタンをポチッ!
……今度はAIが短文を書きました。
スプレッドシートを確認すると?
「ドンッ! 今度はSNSモードの結果が保存されています!」
成功です!!
1つのアプリで2種類の仕事をこなし、記録まで完璧にとってくれる秘書の完成です。

まとめ:あなたは「設計者」になった
お疲れ様でした!
今回使った**「変数集約器」**、地味ですがものすごい威力ですよね。
- 条件分岐(IF): 道を分ける
- 変数集約器: 道を戻す
この「行ってこい」の構造を作れるようになれば、あなたはもう初心者卒業です。
複雑な処理を自動化できる、立派な**「ワークフロー設計者」**の仲間入りです。
ブログとSNSの二刀流アプリ、ぜひ明日からの発信活動に使ってみてください。
作業時間が半分以下になること、間違いなしですよ!
今回も試行錯誤しながらなんとか完成しました!初心者の私が
自動化できるアプリを作れるのは嬉しいですね。
次回は……LLMのパラメータとは?仕組みから性能への影響まで初心者向けに徹底解説
を公開します。是非お楽しみに!


コメント