Skip to content

Commit

Permalink
feat&fix(支持私有页面的数据访问): 使用react-notion-x要求的方式进行NotionAPI的配置
Browse files Browse the repository at this point in the history
  • Loading branch information
qixing-jk committed Dec 7, 2024
1 parent 6c711df commit d5ae329
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 12 deletions.
3 changes: 2 additions & 1 deletion blog.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -551,7 +551,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 ||
Expand Down
10 changes: 10 additions & 0 deletions lib/notion/getNotionAPI.js
Original file line number Diff line number Diff line change
@@ -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
})
}
3 changes: 2 additions & 1 deletion lib/notion/getPageProperties.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import {
} from '../utils'
import { extractLangPrefix } from '../utils/pageId'
import { mapImgUrl } from './mapImage'
import getNotionAPI from '@/lib/notion/getNotionAPI'

/**
* 获取页面元素成员属性
Expand Down Expand Up @@ -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]) {
Expand Down
13 changes: 3 additions & 10 deletions lib/notion/getPostBlocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -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'

/**
* 获取文章内容
Expand Down Expand Up @@ -43,11 +44,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()
Expand Down Expand Up @@ -168,11 +165,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) {
Expand Down

0 comments on commit d5ae329

Please # to comment.