每天面對滿滿的信件、表單和行程,你是不是也想過:如果有一個數位小幫手,能自動整理資訊、還能美美呈現該有多好?以前我也試過用傳統資料庫,雖然強大,卻總讓人覺得冰冷又複雜。直到遇見 Notion API,我才發現,原來自動化也能很「有溫度」!
用 Notion,表單回覆會自己變成美美的頁面,重要信件會自動進待辦清單,行事曆也能同步到 Notion 行事曆視圖。這不僅是筆記本,更像是隨時陪伴你的數位小幫手,把資訊都整理得井井有條,還能用你喜歡的方式呈現。
Notion API 是什麼?為什麼這麼好用?
簡單說,Notion API 就像是一座橋,讓你和 Notion 之間可以互通有無。不管你想自動建立頁面、同步資料,還是查詢內容,只要透過 API,就能用程式讓 Notion 幫你打理生活瑣事。
開始之前,只需要到 Notion 的 My Integration 頁面建立一個屬於你的 Integration(就像邀請一位幫手進你的工作區),選好權限、拿到 Token,然後再把這個 Integration 加入你想操作的頁面或資料庫。這樣,Notion 就準備好聽你差遣啦!
每次和 Notion API 說話時(發送請求),記得要帶上身份證明(Token)、API 版本和資料格式。例如:
const headers = {
Authorization: `Bearer ${process.env.NOTION_API_TOKEN}`,
"Notion-Version": "2022-06-28",
"Content-Type": "application/json",
};
如果忘記在請求中帶上 Token,Notion API 會回應你一個 401 Unauthorized 的錯誤,這代表你沒有通過身份驗證。記得每次呼叫 API 時都要正確加上授權標頭(Authorization header),否則 Notion 會拒絕你的請求。
Notion API TypeScript 實作全攻略
Notion 官方很貼心,直接幫忙準備好 TypeScript/JavaScript SDK,不用自己寫複雜的 HTTP 請求,只要安裝 SDK、設定 Token,就能輕鬆操作 Notion!我們馬上從環境準備到實戰範例,一步步帶你體驗 Notion API 的強大與友善。
安裝 SDK
首先安裝 SDK(在專案目錄下執行):
npm install @notionhq/client
然後在 TypeScript 專案中引入 Notion Client,並用你在 Notion Integration 拿到的 Token 初始化:
import { Client } from "@notionhq/client";
const notion = new Client({ auth: process.env.NOTION_API_TOKEN });
列出工作區所有用戶
如果你想查出目前工作區的所有用戶(方便分派任務或同步資訊),只需要:
async function listUsers() {
try {
const response = await notion.users.list();
console.log("用戶列表:", response.results);
} catch (error) {
console.error("查詢用戶失敗:", error);
}
}
listUsers();
查詢資料庫內容(例如:自動蒐集表單回覆)
想查 Notion 資料庫的內容,比如問卷回覆,步驟超直覺:
async function queryDatabase(databaseId: string) {
try {
const response = await notion.databases.query({
database_id: databaseId,
page_size: 100,
});
return response.results;
} catch (error) {
console.error("查詢資料庫失敗:", error);
return [];
}
}
你可以把這個函式串到 Google Forms webhook,讓每次有新回覆就自動匯入 Notion。
分頁取得全部資料,保證一筆不漏
Notion 資料庫內容如果超過 100 筆,API 會分批回傳,SDK 也幫你把分頁處理變得簡單。這樣就能拿齊全部資料:
async function getAllPages(databaseId: string) {
let results: any[] = [];
let cursor: string | undefined = undefined;
do {
const response = await notion.databases.query({
database_id: databaseId,
start_cursor: cursor,
page_size: 100,
});
results = results.concat(response.results);
cursor = response.has_more ? response.next_cursor : undefined;
} while (cursor);
return results;
}
這段會自動抓到「最後一頁」,不用自己處理繁瑣的游標邏輯,超級貼心。你甚至可以用這份資料直接生成報表、同步到其他系統,或自動發送郵件提醒。
延伸應用(自動建立頁面、更新內容)
除了查詢,Notion API 也能幫你自動建立新頁面、更新現有內容。例如:收到重要信件時自動建頁面:
async function createTodoFromMail(subject: string, content: string) {
await notion.pages.create({
parent: { database_id: process.env.NOTION_TODO_DB_ID! },
properties: {
Name: {
title: [
{
text: { content: subject },
},
],
},
狀態: {
select: { name: "待處理" },
},
},
children: [
{
object: "block",
type: "paragraph",
paragraph: {
rich_text: [{ text: { content } }],
},
},
],
});
}
這樣一來,Gmail 來信就能自動變成 Notion 待辦事項,工作流程「秒」自動化!
這些 TypeScript 範例只是起點,Notion API 讓你用程式打造各種個人化自動化情境,省時又有趣。只要多練習、善用官方文件,你也能變成數位生活的自動化達人!
生活小例子,Notion API 怎麼幫上忙?
想像一下,如果 Gmail 有新郵件,Notion 就自動幫你新增一條待辦事項,重要信件再也不怕被遺漏。這樣一來,工作和生活的大小事都能井然有序地排隊等你處理。
想像一下:你發出一份活動報名表,當有人填完,Notion 就自動幫你新增一筆報名紀錄,連報名者的訊息也整齊排好,完全不用自己複製貼上!
所有表單回應統一管理,不怕資料散落四處,整理和後續分析都變得超容易。
日常的行程管理也能更聰明。無論是工作會議、課程還是朋友聚會,只要同步 Google Calendar,所有活動都會自動顯示在 Notion 行事曆裡,一眼就能掌握行程規劃。
甚至像 Trello、Zoom 等其他協作工具,也能透過 Notion API 匯整資訊。無論團隊還是個人,所有重要內容都集中在 Notion,效率自然 Level Up!
安全、穩定才安心!開發小提醒
- Token 安全:記得不要把 API Token 寫死在程式碼裡,最好放在環境變數或安全的金鑰管理服務。
- 錯誤處理:遇到 API 問題時,溫柔處理一下,根據錯誤訊息做適當回應。例如:
import { APIErrorCode } from "@notionhq/client";
async function safeQuery(databaseId: string) {
try {
const result = await notion.databases.query({
database_id: databaseId,
filter: {
property: "標題",
rich_text: { contains: "示例" },
},
});
return result;
} catch (error: any) {
if (error.code === APIErrorCode.ObjectNotFound) {
console.error("找不到資料庫,確認一下 ID 吧!");
} else {
console.error(error.message);
}
throw error;
}
}
- 請求限流:Notion API 有速率限制,建議用如
p-limit
或bottleneck
工具,避免短時間發送太多請求,讓 Notion 也有喘口氣的機會。
結語:讓 Notion 成為你生活的神隊友
Notion API 讓自動化變得簡單又人性化,不只是寫筆記,更能幫你打理每天的大小事。從郵件、表單到行事曆,所有資訊都能整齊有序,自動同步到你眼前。無論是工作協作還是生活規劃,你都能把時間花在真正重要的事情上,而不是反覆搬運資料。
不只是把資訊「收集」起來,更能自動化「整理」、「提醒」、「同步」到你需要的平台。舉例來說,收到重要信件自動新增待辦、Google Forms 回覆自動進資料庫、行事曆活動秒速同步,甚至能根據不同情境自訂通知或產生報表,讓 Notion 成為你的數位秘書、任務管家、智慧資訊中心。
這些實作其實並不難,從最基本的 API 學起,逐步進階串接 webhook、整合其他雲端服務,你會發現數位生活原來可以這麼有溫度。不管是下班後自動彙整一天重點,還是假日提醒未完成任務,Notion API 都能幫你打理生活瑣事。不妨現在就試試,寫一段簡單的程式,讓你的 Gmail 來信自動變成待辦。只要第一次成功,你就會愛上這種「自己動起來」的魔法。這不是科技冷冰冰的自動化,而是為你量身打造的貼心助理。
如果你有 AI 專案、網站開發或技術整合需求,歡迎來信交流: partner@calpa.me
歡迎訂閱 Calpa 的頻道,一同將想像力化為可能: