こんにちは!「中年からのAI再スタート」のYasuです。
前回、AI抜きの「1秒メモ帳」を作りました。今回はそこにAI(Dify)の脳みそを移植して、全自動経費ボットを完成させる……はずだったのですが。
結論から言います。めちゃくちゃエラーと格闘しました(笑)。
でも、その格闘のおかげで、初心者が100%ハマる「3つの壁」とその壊し方が分かりました。今日は、私の泥臭い成功体験をすべて公開します。これを読めば、あなたは最短距離でゴールできるはずです!
ステップ1:Difyで「経理の脳みそ」を作る
まずはDifyでワークフローを作成します。
- 開始ノード: 変数名を
line_messageに設定。 - LLMノード: 「届いたメッセージを『取引日、科目、取引手段、摘要、取引先、金額』のJSON形式で返して」と指示します。
- 終了ノード: 出力変数名を
resultに設定。ここが1文字でも違うと、GASがデータを受け取れずパニックになります。
ステップ2:直面した「3つの壁」と解決策
設定を終えてスマホから送信!……しかし、スプレッドシートには何も表示されません。ここからが格闘の始まりでした。
【壁1】GASの「実行」ボタンは押してはいけない!?
実行ログに TypeError: Cannot read properties of undefined (reading 'postData') というエラーが。
- 原因: GAS画面の「実行」ボタンを手動で押したからでした。
- 正解: このプログラムは「LINEからの手紙(postData)」を待つ専用。テストは必ずスマホのLINEから送るのがルールです!

【壁2】Googleの「見えない壁(権限)」
次に UrlFetchApp.fetch を呼び出す権限がありません というエラーが発生。
- 原因: GASが外部(Dify)に通信するパスポートを持っていなかったから。
- 解決策: 許可を出すためだけのダミー関数
testAuthを作成。関数を選択して実行し、あの「詳細 > 移動 > 許可」という少し怖い画面を突破することで、無事にパスポートが発行されました!

【壁3】AIが「余計な挨拶」をしてくる
最後に reading 'replace' というエラー。
- 原因: AIが気を利かせて「はい、仕分けました!」と挨拶を付けてきたせいで、データが壊れていました。
- 解決策: GAS側に「余計な記号を消すコード」を追加し、AIを黙らせることで解決しました。
ステップ3:ついに「その瞬間」がやってきた
すべての壁を壊し、スマホから祈るように送信しました。 「昨日、コーナンで洗剤を個人のクレカで1500円買ったよ」
数秒後、スプレッドシートに目をやると…… 2026/03/03 | 消耗品費 | クレジットカード | 洗剤 | コーナン | 1500
「やった!やっと出た!!」 パソコンの前で、思わず声が出てしまいました。

まとめ:エラーの数だけ、相棒が可愛くなる
今回、何度もエラーに跳ね返されました。でも、そのたびに「なぜ?」と考え、一つずつ設定を直していました。何度もジェミニにエラーコードを張り付けて
失敗しては張り付けての繰り返しでしたが、何とかクリアしました!
ただコピペして動いたものより、格闘して動かしたツールは、もう自分の「分身」のような愛着が湧きますね。
これで、私の現場での経費入力は**「LINEでつぶやくだけ」**になりました。確定申告の恐怖からも卒業できるといいな、今年はこれが使えると助かります。
実際に使ってみないと分からないですが。
皆さんも、もしエラーが出ても「失敗」だと思わないでください。それは「ゴールに近づいているサイン」です。次回は完成したアプリの作り方の実践編として
スクショで作成までの道のりを書きます。是非、お楽しみに!


コメント