You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动获取Dev Tools中的Notion token_v2与notion_user_id?

解决react-notion-x令牌自动更新问题

方法一:用无头浏览器定期抓取有效Cookie

可以用Puppeteer这类无头浏览器工具,自动完成Notion登录并提取所需Cookie,替代手动复制的流程:

  • 编写Node.js脚本,启动无头浏览器访问Notion登录页面
  • 自动填入账号密码完成登录(若开启2FA,需额外处理验证码逻辑,比如手动介入一次后保存会话文件复用登录状态)
  • 登录成功后,从浏览器Cookie中提取TOKEN_V2和ACTIVE_USER对应的值
  • 将提取到的值写入项目的环境变量文件(如.env)或配置数据库
  • 配置定时任务(如Linux的cron),定期执行脚本更新令牌;同时让服务监听配置文件变化,自动重载配置(比如用dotenv-flow配合nodemon实现热重载)

示例核心代码片段:

const puppeteer = require('puppeteer');
const fs = require('fs');

async function fetchNotionCookies() {
  const browser = await puppeteer.launch({ 
    headless: 'new',
    userDataDir: './notion-session' // 持久化登录状态,避免重复输入账号密码
  });
  const page = await browser.newPage();
  
  await page.goto('https://www.notion.so');
  // 检查是否已登录,未登录则执行登录流程
  const isLoggedIn = await page.$('.notion-user-menu') !== null;
  if (!isLoggedIn) {
    await page.goto('https://www.notion.so/login');
    await page.type('#email', process.env.NOTION_EMAIL);
    await page.type('#password', process.env.NOTION_PASSWORD);
    await page.click('[type="submit"]');
    await page.waitForNavigation();
  }
  
  // 获取目标Cookie
  const cookies = await page.cookies();
  const tokenV2 = cookies.find(c => c.name === 'token_v2')?.value;
  const activeUser = cookies.find(c => c.name === 'ACTIVE_USER')?.value;
  
  // 更新环境变量文件
  const envContent = `NOTION_TOKEN_V2=${tokenV2}\nNOTION_ACTIVE_USER=${activeUser}`;
  fs.writeFileSync('.env', envContent);
  
  await browser.close();
}

fetchNotionCookies();

方法二:服务端会话自动刷新

如果你的服务是Node.js编写的,可以维护一个持久化会话,当令牌失效时自动重新登录获取新令牌:

  • 使用axios配合tough-cookie库管理Cookie会话
  • 每次请求Notion API前,先发送一个轻量测试请求验证令牌有效性
  • 若返回401或权限错误,立即执行登录流程获取新的TOKEN_V2和ACTIVE_USER,更新会话Cookie
  • 将新令牌存入内存或配置文件,后续请求自动使用新令牌

重要提醒

  • Notion的私有API并未公开,此类自动化操作可能违反Notion的服务条款,使用前请评估风险
  • 账号密码、令牌等敏感信息务必加密存储,绝对不能硬编码在代码中
  • 若开启2FA,自动化登录会更复杂,优先考虑用无头浏览器的会话文件持久化登录状态

内容的提问来源于stack exchange,提问作者thisNeil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:27:15