AI英語学習アプリ「Daily News English」に、ユーザーの学習データをNotionデータベースに自動保存する機能を実装しました。

重複チェック、エラーハンドリング、データの復元機能など、実用的なNotion API連携の実装プロセスを記録します。

プロジェクト: Daily News English Training App

実装日: 2026年1月25日

技術スタック: Next.js 16, React 19, FastAPI, Python, Notion API

なぜこの機能を作ったのか

英語学習アプリを作って、記事を生成できるようになった。でも、生成した記事は一度限り。再度同じ記事で練習したくても、履歴が残らない。

SupabaseやFirebaseを使えば簡単だが、せっかくNotion APIを使っているなら、学習履歴もNotionで管理したい。普段使っているツールで完結させたかった。


実装した3つの機能

1. 記事の自動保存

記事を生成したら、自動的にNotionデータベースに保存する。ユーザーは何もする必要がない。

ポイント:

2. 重複チェック機能

同じ記事を何度も保存しないように、24時間以内の重複をチェック。

# 重複チェックのロジック
- 同じタイトル
- 同じユーザー
- 過去24時間以内
→ 新しいページを作らず、既存ページIDを返す

24時間を超えたら新しいページとして保存される。これは意図的な設計で、同じニュースでも時間が経てば再学習する価値があるから。