home / kengdb / noteTb

noteTb: 347

This data as json

id user_id content tags created_at updated_at enable pinned folder_id comment position visibility
347 1 1 # keng开发日志 ## 2026-05-21 后端 / Notion / 分享收件箱 - Notion 的 `ntn_` token 不能写在全局 `config.ini`,已迁到用户级 `userIntegrationTb`。 - Notion token 验证:`users/me` 返回 200,说明 token 有效;但 `/v1/search` 返回 0 条,原因是目标页面没有在 Notion 右上角 ··· → Connections 添加该 integration。以后遇到“已登录但读不到列表”,优先检查页面授权,而不是只看 token 格式。 - 分享收件箱改为系统文件夹:`分享给我的/来自陌生人/来自好友`,接收方拖到普通文件夹时自动复制为自己的笔记,原分享关系置为 dismissed。 ## 2026-05-21 前端 / 后端 / Notion 深挖 - 分享收件箱重复的根因是系统文件夹没有唯一约束,多 worker/并发确保逻辑可能写出两套。已清理历史重复数据,并新增 `idx_folder_user_system_key`,同一用户同一 `system_key` 只保留一条。 - 前端把 `分享给我的` 改为笔记列表顶端的独立收件箱区,后端仍用 `folderTb.system_key` 做映射;普通文件夹列表不再混入这组系统收件箱。 - Notion 当前 token 经 `users/me` 识别为 Bot/Connection Token;`search_all/search_pages/search_databases` 都是 200 但 0 条。官方模型是 connection 只能读取已授权给它的页面/数据源,API 没有“把 connection 添加到已有页面”的接口;要自动选择页面只能走 OAuth 页面选择器,或使用 PAT。 ## AI 交互 | Notion PAT vs Bot Token 结论(2026-05-21) - **根本解法:PAT(Personal Access Token)** - 在 https://www.notion.so/developers/tokens 创建,勾选 Notion API 能力,选择工作区 - PAT 直接用用户自己的权限,不需要给每个页面手动 Add connections - `GET /v1/search` 可以返回用户有权限的所有页面,无需逐页授权 - **Bot/Connection Token(`ntn_xxx` internal integration)的限制** - 只能访问在页面 `···` → Add connections 中手动添加了该 integration 的页面 - Notion 没有 API 可以把 connection 主动加到已有页面,只能用户手动操作 - Add connections 按钮位置:页面右上角 `···` 菜单 → 向下滚动 → `Add connections` → 搜索 integration 名称 - **Notion 登录方式**:不支持 GitHub 登录;仅支持 Google / Apple / Microsoft / 邮箱密钥 / 企业 SSO - **诊断逻辑(importer.py)**:搜索返回 0 条时用 `GET /v1/users/me` 判断是 Bot 还是 PAT,给出针对性提示 ## 前端 | api() 函数 silent 模式(2026-05-21) - `api()` 全局 fetch 包装器增加 `_silent: true` 选项,设置后 catch 块不弹 toast,只 re-throw - 用于 Notion 搬家面板等"自己处理错误展示"的场景,防止大红 toast 与面板内错误文字同时显示 ## 后端 | 分享笔记"收下"接口(2026-05-21) - `POST /api/notes/{id}/claim`:校验接收方 → INSERT 进 noteTb(folder_id=NULL)→ DELETE FROM noteShareTb(彻底删,不是 dismissed) - 前端 `claimSharedNote(id)` 调用后从本地数组删除该条、`renderList()`、toast "已收下:xxx" - 区别于"抄回去"(copy-to-me 保留分享行):收下彻底清除分享关系 ## 待完成(记录人: assistant, 2026-05-21 02:00) - 将 `promt.md` 的最终合并验证并覆盖原有逻辑,保证 `promt.md` 始终为最新版本。 - 在 `file/anylize/` 下写 Notion 研究分析(包含 PAT 创建步骤、Bot vs PAT 区别、Add connections 路径)。 - 明早验证 Notion PAT:替换 token 后重跑 `GET /api/other-notes/notion/notes`,确认返回正常。 - 若有异常,将诊断结果写入 `file/anylize/Notion-问题分析.md`。 [] 2026-05-21 00:38:01 2026-05-21 02:00:10 F F     0 public

Links from other tables

  • 0 rows from note_id in noteShareTb
  • 0 rows from note_id in shareLinkTb
Powered by Datasette · Queries took 4.066ms