ヘッダー画像

第2回:NotionとNext.jsを連携してブログを表示するまで

🌍 この記事でわかること

  • Notionで作成したデータベースをAPIで取得する方法
  • Next.jsのテンプレートを使って表示する手順
  • NotionAPIの設定ミスで起きる問題と対処

🔧 環境の準備

  • Notion Integration(API連携用トークン)を作成
  • GitHubアカウント
  • Vercelアカウント
  • Notionのアカウント & データベース作成

⚡️ Step 1: Notion 側の準備

  • 記事用のDatabaseを作成
プロパティ名種類説明
Titleタイトル記事のタイトル
SlugテキストURLに使われる英数字識別子
Date日付記事の公開日や作成日など
Tagsマルチセレクトカテゴリやタグ分けに使用
Publishedチェックボックス公開状態を制御(ONで公開)
  • Integrationを作成し、正しくデータベースに共有

📑 Step 2: Next.js ブログテンプレートをfork

  • VSCodeでリポジトリをcloneし、開発環境を構築

🛠️ Step 3: 環境変数の設定

.env.local に以下を設定

NOTION_TOKEN=xxxxxxxxxxxxxxxxx  
# NotionのIntegrationで発行された内部トークン。シークレットとして管理。

NOTION_DATABASE_ID=xxxxxxxxxxxxxxxxx  
# 表示させたいNotionデータベースのID。URL末尾にある文字列などから取得可能。

📲 Step 4: ローカルで表示確認

  • npm run dev でローカルサーバー起動
  • localhost:3000 でNotion記事が表示
  • 最初の1記事表示で感動したものの...

⚠️ つまづいたところ

  • Published checkboxがフィルタに効いていない、読み取れない
  • cache() を利用していたため、更新が反映されない
  • yarn.lock の不正な設定によりビルド失敗

✅ まとめ

  • Notion の DB構成 + API連携は、最初のカベ
  • Next.js のテンプレートが優秀なので、fork だけで準備も楽
  • つまづきやすいのは「Published」設定、環境変数、キャッシュシステム

👉 次回: Vercelで本番公開!ドメイン設定やPreview/Productionの差には要注意

← Go home