Skip to content

Latest commit

 

History

History
92 lines (65 loc) · 2.46 KB

File metadata and controls

92 lines (65 loc) · 2.46 KB

解决 Lark OAuth 用户信息获取失败

当前状态

  • ✅ OAuth 授权成功(错误 20029 已解决)
  • ❌ 获取用户信息失败

解决方案

1. 检查 Lark 开发者平台权限

登录 https://open.larksuite.com,进入您的应用:

A. 权限管理

  1. 左侧菜单 → "权限管理" (Permissions)
  2. 添加以下权限:
    • 获取用户基本信息 - contact:user.base:readonly
    • 获取用户邮箱地址 - contact:user.email:readonly
    • 获取用户手机号 - contact:user.phone:readonly(可选)

B. 权限申请流程

  1. 点击"添加权限"
  2. 搜索并选择上述权限
  3. 提交申请
  4. 等待审批(某些权限可能需要审批)

2. 已添加的改进

我已经更新了代码:

  1. 添加了权限范围(scope) 到授权 URL
  2. 添加了详细的错误日志 来帮助诊断问题

3. 测试步骤

  1. 重启服务

    npm start
  2. 清除浏览器缓存和 Cookie

  3. 重新登录: 访问 https://donor-skirt-anthony-cookie.trycloudflare.com/test-lark-oauth.html

  4. 查看控制台日志,特别注意:

    • Token 交换响应
    • 用户信息 API 响应
    • 具体的错误信息

4. 常见错误及解决

错误:权限不足

  • 原因:应用未添加必要权限
  • 解决:在权限管理中添加用户信息相关权限

错误:Invalid access token

  • 原因:Token 类型错误或已过期
  • 解决:检查 token 交换流程

错误:User not found

  • 原因:用户未在应用可见范围内
  • 解决:检查应用的可见范围设置

5. 备用方案

如果仍然无法获取用户信息,可以:

  1. 简化用户信息: 只使用 OAuth 返回的 user_id,不获取详细信息

  2. 使用 Lark SDK

    npm install @larksuiteoapi/node-sdk
  3. 联系 Lark 支持: 提供您的 App ID 和错误日志

6. 临时解决方案

如果急需使用,可以先跳过用户信息获取:

  1. 注释掉获取用户信息的代码
  2. 使用授权码交换得到的基本信息
  3. 后续再完善用户信息获取

需要您提供的信息

请重新尝试登录后,提供控制台中的:

  1. "Token 交换响应" 的完整内容
  2. "用户信息 API 响应" 的错误信息
  3. 具体的错误代码和消息

这将帮助我们准确定位问题。