通过Slack app API Bolt用户选择菜单获取用户显示名称的可行性咨询
该需求无法实现,Slack Block Kit的users_select组件原生不会在交互payload中返回用户显示名称,你必须通过调用Slack REST API获取用户元数据。
原因说明
Slack所有选择类Block组件的交互payload设计逻辑就是仅返回资源唯一标识符:用户选择返回用户ID、频道选择返回频道ID、会话选择返回会话ID,不会附带显示名、头像地址这类资源元数据。这么设计一方面是为了控制payload体积,另一方面是避免未经权限校验泄露敏感信息。
优化建议
如果不想每次用户选择都发起实时API调用,可以采用以下方案降低请求量:
- 本地做用户ID和显示名的映射缓存,第一次调用
users.info接口拿到用户信息后存储到本地,设置合理的过期时间(比如24小时),后续相同ID直接走本地查询即可 - 若你的应用需要频繁用到全量工作区用户信息,可以定期调用
users.list接口预拉取所有用户的元数据存到本地,直接做本地匹配 - 如果你使用Slack官方的Bolt框架开发应用,可以开启框架内置的用户信息缓存能力,调用
client.users.info时会自动命中缓存,无需手动处理存储逻辑
内容的提问来源于stack exchange,提问作者pythonNovice
相关产品推荐
相关产品推荐

