diff --git a/blog.config.js b/blog.config.js index 851b1718..24cf06ae 100644 --- a/blog.config.js +++ b/blog.config.js @@ -554,7 +554,8 @@ const BLOG = { process.env.NEXT_PUBLIC_DESCRIPTION || '这是一个由NotionNext生成的站点', // 站点描述,被notion中的页面描述覆盖 // 开发相关 - NOTION_ACCESS_TOKEN: process.env.NOTION_ACCESS_TOKEN || '', // Useful if you prefer not to make your database public + NOTION_ACTIVE_USER: process.env.NOTION_ACTIVE_USER || '', + NOTION_TOKEN_V2: process.env.NOTION_TOKEN_V2 || '', // Useful if you prefer not to make your database public DEBUG: process.env.NEXT_PUBLIC_DEBUG || false, // 是否显示调试按钮 ENABLE_CACHE: process.env.ENABLE_CACHE || diff --git a/lib/notion/getNotionAPI.js b/lib/notion/getNotionAPI.js new file mode 100644 index 00000000..c2cbb6a6 --- /dev/null +++ b/lib/notion/getNotionAPI.js @@ -0,0 +1,10 @@ +import { NotionAPI } from 'notion-client' +import BLOG from '@/blog.config' + +export default function getNotionAPI() { + return new NotionAPI({ + activeUser: BLOG.NOTION_ACTIVE_USER || null, + authToken: BLOG.NOTION_TOKEN_V2 || null, + userTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone + }) +} diff --git a/lib/notion/getPageProperties.js b/lib/notion/getPageProperties.js index 63428184..5d5e7ff6 100644 --- a/lib/notion/getPageProperties.js +++ b/lib/notion/getPageProperties.js @@ -12,6 +12,7 @@ import { } from '../utils' import { extractLangPrefix } from '../utils/pageId' import { mapImgUrl } from './mapImage' +import getNotionAPI from '@/lib/notion/getNotionAPI' /** * 获取页面元素成员属性 @@ -56,7 +57,7 @@ export default async function getPageProperties( case 'person': { const rawUsers = val.flat() const users = [] - const api = new NotionAPI({ authToken }) + const api = getNotionAPI() for (let i = 0; i < rawUsers.length; i++) { if (rawUsers[i][0][1]) { diff --git a/lib/notion/getPostBlocks.js b/lib/notion/getPostBlocks.js index 1f8733f5..d5896ddc 100644 --- a/lib/notion/getPostBlocks.js +++ b/lib/notion/getPostBlocks.js @@ -2,6 +2,7 @@ import BLOG from '@/blog.config' import { getDataFromCache, setDataToCache } from '@/lib/cache/cache_manager' import { NotionAPI } from 'notion-client' import { deepClone, delay } from '../utils' +import getNotionAPI from '@/lib/notion/getNotionAPI' /** * 获取文章内容 @@ -42,11 +43,7 @@ export async function getPageWithRetry(id, from, retryAttempts = 3) { retryAttempts < 3 ? `剩余重试次数:${retryAttempts}` : '' ) try { - const authToken = BLOG.NOTION_ACCESS_TOKEN || null - const api = new NotionAPI({ - authToken, - userTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone - }) + const api = getNotionAPI() const start = new Date().getTime() const pageData = await api.getPage(id) const end = new Date().getTime() @@ -166,11 +163,7 @@ export const fetchInBatches = async (ids, batchSize = 100) => { ids = [ids] } - const authToken = BLOG.NOTION_ACCESS_TOKEN || null - const api = new NotionAPI({ - authToken, - userTimeZone: Intl.DateTimeFormat().resolvedOptions().timeZone - }) + const api = getNotionAPI() let fetchedBlocks = {} for (let i = 0; i < ids.length; i += batchSize) {