From 46390194eee8a1d6425719d8985b58ee177d5560 Mon Sep 17 00:00:00 2001 From: Codex Date: Fri, 23 Oct 2026 02:11:29 +0800 Subject: [PATCH] Explain Feishu basic profile permission in identity diagnostics --- backend/internal/identityprovider/grants.go | 2 +- docs/specs/SDD-011-feishu-directory-and-admission.md | 2 +- frontend/src/locales/en-US.json | 4 ++-- frontend/src/locales/zh-CN.json | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/backend/internal/identityprovider/grants.go b/backend/internal/identityprovider/grants.go index d35526e..106c107 100644 --- a/backend/internal/identityprovider/grants.go +++ b/backend/internal/identityprovider/grants.go @@ -152,7 +152,7 @@ func (p *Provider) DirectoryCheck(c *gin.Context) { } name, source, err := fetchDirectoryNameWithSource(c.Request.Context(), idp.AppID, secret, strings.TrimPrefix(input.Subject, idp.TenantKey+":")) if err != nil { - c.JSON(200, gin.H{"available": false, "hint": "请在飞书开放平台检查 contact:user.base:readonly 权限、应用发布状态和通讯录可见范围"}) + c.JSON(200, gin.H{"available": false, "hint": "请在飞书开放平台检查应用身份权限 contact:user.basic_profile:readonly、应用发布状态及通讯录可见范围"}) return } c.JSON(200, gin.H{"available": true, "name": name, "source": source}) diff --git a/docs/specs/SDD-011-feishu-directory-and-admission.md b/docs/specs/SDD-011-feishu-directory-and-admission.md index d05782f..94f1f67 100644 --- a/docs/specs/SDD-011-feishu-directory-and-admission.md +++ b/docs/specs/SDD-011-feishu-directory-and-admission.md @@ -51,4 +51,4 @@ ## 7. 未决 -2026-10-23 测试环境以已保存的应用凭据查询已验证 `open_id`:tenant token 成功,`basic_batch` 返回飞书错误码 `99991672`;单用户接口成功且确认 open_id 匹配,但 `name` 仍为“用户812604”,其他姓名字段为空。浏览器用户令牌的 basic_batch 路径尚待下一次真人授权验证。基础姓名接口的应用权限和发布状态需在飞书开放平台核对;不能由平台代授权或仅靠用户数字反查。全量通讯录同步、部门实时同步和强制踢离在线用户留到后续迭代,本轮仅支持按已验证身份授权。 +2026-10-23 测试环境以已保存的应用凭据查询已验证 `open_id`:tenant token 成功,`basic_batch` 返回飞书错误码 `99991672`,说明明确要求应用身份权限 `contact:user.basic_profile:readonly`;单用户接口成功且确认 open_id 匹配,但 `name` 仍为“用户812604”,其他姓名字段为空。浏览器用户令牌的 basic_batch 路径尚待下一次真人授权验证。基础姓名接口的应用权限和发布状态需在飞书开放平台核对;不能由平台代授权或仅靠用户数字反查。全量通讯录同步、部门实时同步和强制踢离在线用户留到后续迭代,本轮仅支持按已验证身份授权。 diff --git a/frontend/src/locales/en-US.json b/frontend/src/locales/en-US.json index 9c0b896..ecf9754 100644 --- a/frontend/src/locales/en-US.json +++ b/frontend/src/locales/en-US.json @@ -795,11 +795,11 @@ }, "feishuDirectory": { "title": "Feishu directory lookup", - "hint": "After a sign-in, check the directory name. The app needs published user basic info permission and visibility.", + "hint": "After sign-in, check the name. The basic name API requires the app identity scope contact:user.basic_profile:readonly and a published app.", "choose": "Select a signed-in member", "check": "Check name", "found": "Directory name: {name}", - "basicUnavailable": "The basic name API did not return a result. Check app permissions and publication in Feishu.", + "basicUnavailable": "The basic name API did not return a result. Grant app identity scope contact:user.basic_profile:readonly and publish the app.", "failed": "Lookup failed" }, "feishuAdmission": { diff --git a/frontend/src/locales/zh-CN.json b/frontend/src/locales/zh-CN.json index 94dc8e9..0306fc8 100644 --- a/frontend/src/locales/zh-CN.json +++ b/frontend/src/locales/zh-CN.json @@ -795,11 +795,11 @@ }, "feishuDirectory": { "title": "飞书姓名查询", - "hint": "完成登录后可检查通讯录姓名。需要飞书应用已发布、获取用户基本信息权限和可见范围。", + "hint": "完成登录后可检查姓名。基础姓名接口需应用身份权限 contact:user.basic_profile:readonly,并发布应用。", "choose": "选择已登录成员", "check": "检查姓名", "found": "通讯录姓名:{name}", - "basicUnavailable": "基础姓名接口未返回结果;请在飞书开放平台核对接口权限和应用发布状态。", + "basicUnavailable": "基础姓名接口未返回结果;请开通应用身份权限 contact:user.basic_profile:readonly 并发布应用。", "failed": "检查失败" }, "feishuAdmission": {