飞书 User Access Token 获取指南

前置准备

在飞书开放平台 https://open.feishu.cn/app 创建企业自建应用,记录以下信息:

  • App ID(即 client_id
  • App Secret(即 client_secret

第一步:配置应用权限

  1. 进入应用 → 权限管理
  2. 搜索并开启所需权限,例如:
    • contact:user.base:readonly(读取用户基本信息)
  3. 提交审核(企业自建应用通常自动审批通过)

💡 offline_access 是 OAuth 协议标准 scope,无需在权限管理中申请,直接在授权链接中添加即可。


第二步:配置重定向 URL

  1. 进入应用 → 安全设置
  2. 在「重定向 URL」中添加回调地址

重定向 URL 是你自己定义的地址,飞书授权成功后会将用户跳转到此地址并携带 code 参数。

场景 填写示例
本地开发调试 http://localhost:3000/callback
线上服务器 https://yourdomain.com/callback
纯手动测试(无服务器) http://localhost(从地址栏复制 code)

第三步:引导用户授权,获取 Code

在浏览器中打开以下授权链接(注意:redirect_uri 需要 URL 编码,且整个链接必须是一行):

不需要 refresh_token(基础版):

复制代码
https://open.feishu.cn/open-apis/authen/v1/authorize?client_id=YOUR_APP_ID&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fcallback&response_type=code&scope=contact:user.base:readonly&state=abc123

需要 refresh_token(推荐,加上 offline_access):

复制代码
https://open.feishu.cn/open-apis/authen/v1/authorize?client_id=YOUR_APP_ID&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fcallback&response_type=code&scope=contact:user.base:readonly%20offline_access&state=abc123

参数说明:

参数 说明
client_id 你的 App ID
redirect_uri 回调地址(需 URL 编码)
response_type 固定填 code
scope 申请的权限范围,多个值用空格分隔(URL 编码为 %20
state 随机字符串,用于防 CSRF 攻击

scope 说明:

scope 值 说明
contact:user.base:readonly 读取用户基本信息(需在权限管理中申请)
offline_access 获取 refresh_token,用于后续刷新凭证(无需申请,直接加即可)

用户点击授权后,浏览器跳转到:

复制代码
http://localhost:3000/callback?code=xxxxxxxx&state=abc123

从 URL 中取出 code 参数,该 code 仅 5 分钟内有效,需立即使用!


第四步:用 Code 换取 User Access Token

⚠️ 注意:必须使用 v2 接口,v1 接口已废弃。

请求地址:

复制代码
POST https://open.feishu.cn/open-apis/authen/v2/oauth/token

请求 Headers:

复制代码
Content-Type: application/json

请求 Body(JSON):

复制代码
{
  "grant_type": "authorization_code",
  "client_id": "YOUR_APP_ID",
  "client_secret": "YOUR_APP_SECRET",
  "code": "上一步获取的 code",
  "redirect_uri": "http://localhost:3000/callback"
}

⚠️ redirect_uri 在 JSON body 中不需要 URL 编码,直接填原始地址即可。

成功响应示例(含 refresh_token):

复制代码
{
  "token_type": "Bearer",
  "access_token": "eyJhbGci...",
  "expires_in": 7200,
  "refresh_token": "ur-xxxxxxxxxxxxxxxx",
  "scope": "contact:user.base:readonly offline_access",
  "code": 0
}

💡 refresh_token 仅在授权链接的 scope 中包含 offline_access 时才会返回,否则响应中不含此字段。

其中 access_token 就是 user_access_token


第五步:使用 Token 调用 API

在请求头中携带 token:

复制代码
Authorization: Bearer eyJhbGci...

示例------获取当前用户信息:

复制代码
curl https://open.feishu.cn/open-apis/authen/v1/user_info \
  -H "Authorization: Bearer eyJhbGci..."

Token 有效期说明

Token 类型 有效期
access_token(user_access_token) 2 小时
refresh_token 30 天

刷新 Token(access_token 过期后)

前提:授权时 scope 包含了 offline_access,响应中才有 refresh_token

请求地址:

复制代码
POST https://open.feishu.cn/open-apis/authen/v2/oauth/token

请求 Body(JSON):

复制代码
{
  "grant_type": "refresh_token",
  "client_id": "YOUR_APP_ID",
  "client_secret": "YOUR_APP_SECRET",
  "refresh_token": "ur-xxxxxxxxxxxxxxxx"
}

成功响应会同时返回新的 access_tokenrefresh_token

复制代码
{
  "token_type": "Bearer",
  "access_token": "eyJhbGci...(新的)",
  "expires_in": 7200,
  "refresh_token": "ur-yyyyyyyyyyyyyy(新的)",
  "code": 0
}

⚠️ 每次刷新后,旧的 refresh_token 立即失效,请保存新返回的 refresh_token


常见错误排查

错误码 原因 解决方法
20014 App Access Token 无效 检查是否使用了 v2 接口;检查 redirect_uri 是否与授权时一致
code 失效 code 超过 5 分钟或已被使用 重新打开授权链接获取新 code
redirect_uri 不匹配 body 中的 redirect_uri 与授权时不一致 确保两处完全一致,body 中不要 URL 编码
响应中无 refresh_token 授权时未申请 offline_access 在 scope 中加上 offline_access 重新授权

完整流程示意

复制代码
1. 配置应用权限 & 重定向 URL
         ↓
2. 打开授权链接(scope 加上 offline_access)→ 用户点击同意
         ↓
3. 从回调 URL 中获取 code(5分钟内有效)
         ↓
4. POST /authen/v2/oauth/token → 获取 access_token + refresh_token
         ↓
5. 使用 access_token 调用飞书 API
         ↓
6. access_token 过期后,用 refresh_token 刷新,获取新 token
相关推荐
不爱记笔记1 天前
音视频转笔记工具横评2026,通义听悟、Ai好记、NotebookLM 实测对比
人工智能·笔记·ai·音视频·飞书·obsidian
gtstore3 天前
飞书仓库管理系统技术选型:从手工台账到系统化管理的演进路径
飞书·仓库管理系统·飞书仓库管理·saas选型·飞书仓库管理系统选型
云间月13143 天前
搭一套截图识别通知机器人:OCR、飞书Webhook与远程触发实战
机器人·ocr·飞书
看-是灰机4 天前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书
汤姆百宝箱5 天前
AI提效手册:豆包 即梦 剪映 飞书 扣子5合1实操指南+豆包AI赚钱手册(完整电子版pdf)
飞书·扣子·剪映·豆包·即梦·ai提效手册·豆包ai赚钱手册
woshikejimi16 天前
2026年高音质免费开车听书工具实测
飞书
AI的探索之旅8 天前
飞书里跟 AI 聊天,让 Hermes + LCEDA Pro 结合本地llmwiki理解电路
人工智能·飞书
SL-staff9 天前
企业文档系统私有化部署方案技术对比:JVS企业文档 vs 语雀 vs 飞书
低代码·私有化部署·飞书·jvs·企业文档·jvs企业文档·生态集成
一次旅行9 天前
【AI技术_工具_资讯】用 Python 写一个「自愈式」定时任务:失败自动重试 + 飞书告警
开发语言·python·飞书
陈同学xxx10 天前
Hermes Agent 接入飞书,在手机上随时聊天
linux·python·飞书