NuxtNotion 使用指南

了解如何使用 Notion API 构建现代化的博客系统,从基础概念到高级功能的完整指南

Notion API 概述

Notion 的 REST API 为开发者提供了与 Notion 工作区直接交互的能力。通过 API,您可以构建强大的集成应用,实现数据同步、内容管理和工作流自动化。

核心功能包括:

  • 页面管理:创建、更新和检索页面内容
  • 数据库操作:管理数据库、属性、条目和架构
  • 用户管理:访问用户配置文件和权限
  • 评论系统:处理页面和内联评论
  • 内容搜索:在工作区内容中进行搜索
  • 身份验证:使用 OAuth 2.0 保护集成安全

快速开始

1. 创建 Notion 集成

首先,您需要在 Notion 开发者平台创建一个集成应用,获取 API 密钥。

2. 安装依赖

npm install @notionhq/client

3. 基础配置

import { Client } from '@notionhq/client'

const notion = new Client({
  auth: process.env.NOTION_TOKEN,
})

集成类型

内部集成

  • • 仅限单个工作区使用
  • • 适用于自定义工作流和自动化
  • • 工作区成员显式授权访问
  • • 无需 OAuth 流程

公共集成

  • • 可在多个工作区使用
  • • 适用于广泛的用例
  • • 使用 OAuth 2.0 协议
  • • 需要 Notion 安全审查

核心功能

页面管理

创建、读取、更新页面内容和属性

数据库操作

查询、过滤、排序数据库记录

内容搜索

在工作区中搜索页面和数据库

NuxtNotion 项目结构

NuxtNotion/
├── components/          # Vue 组件
│   ├── AppNavbar.vue   # 导航栏组件
│   ├── BlogPostCard.vue # 博客卡片组件
│   └── NotionContent.vue # Notion 内容渲染
├── pages/              # 页面路由
│   ├── index.vue       # 首页
│   ├── articles.vue    # 文章列表
│   ├── guide.vue       # 指南页面
│   └── post/[id].vue   # 文章详情
├── server/             # 服务端 API
│   ├── api/
│   │   ├── posts.js    # 文章 API
│   │   └── posts/latest.js # 最新文章 API
│   └── plugins/
│       └── notion.js   # Notion 客户端配置
├── composables/        # 组合式函数
│   └── useNotionData.js # Notion 数据处理
└── nuxt.config.js      # Nuxt 配置文件

API 使用示例

1. 查询数据库

// server/api/posts.js
const response = await notion.databases.query({
  database_id: process.env.NOTION_DATABASE_ID,
  sorts: [
    {
      property: 'Created',
      direction: 'descending'
    }
  ],
  page_size: 6
})

2. 获取页面内容

// 获取页面详情
const page = await notion.pages.retrieve({
  page_id: pageId
})

// 获取页面块内容
const blocks = await notion.blocks.children.list({
  block_id: pageId
})

3. 数据处理

// composables/useNotionData.js
export function extractPlainText(richText) {
  return richText?.map(text => text.plain_text).join('') || ''
}

export function formatNotionDate(dateString) {
  return new Date(dateString).toLocaleDateString('zh-CN')
}

最佳实践

🔒 安全性

  • • 将 API 密钥存储在环境变量中
  • • 使用服务端 API 路由保护敏感操作
  • • 实施适当的错误处理和日志记录

⚡ 性能优化

  • • 使用分页减少单次请求的数据量
  • • 实施缓存策略减少 API 调用
  • • 使用 Nuxt 的 SSR 功能提升首屏加载速度

🎨 用户体验

  • • 提供加载状态和错误处理
  • • 实现响应式设计适配各种设备
  • • 使用渐进式加载提升用户体验

开始构建您的 Notion 集成

探索更多功能,创建属于您的个性化博客系统