Slack交互消息回调中user对象username非显示名问题咨询
问题解答
原因说明
你收到的编码值是用户在第三方身份提供商(如Okta)中的唯一ID,而非Slack显示名。这种情况通常是因为你的Slack工作区启用了SCIM身份同步或第三方身份提供商(IdP)集成,Slack会优先返回IdP的用户ID,替代原生的Slack用户名。修正方案
- 通过工作区设置调整(需管理员/应用管理权限)
工作区管理员可在后台修改身份同步配置:- 进入Slack工作区管理后台,找到「设置与管理 > 工作区设置」
- 切换到「身份验证」标签,找到第三方身份提供商的配置模块
- 在SCIM同步设置中,关闭“将IdP用户ID作为Slack用户名返回”类的选项(不同IdP的选项名称可能略有差异)
- 无权限时的替代方案
你可以利用Slack的users.info接口,用回调payload里的user.id(即U开头的用户ID)调用接口,获取用户的真实显示名(real_name字段)和Slack原生用户名。调用该接口需要你的应用拥有users:read权限。
示例请求(curl):curl -X GET "https://slack.com/api/users.info?user=U04xxxxxx" \ -H "Authorization: Bearer YOUR_APP_OAUTH_TOKEN"
- 通过工作区设置调整(需管理员/应用管理权限)
内容的提问来源于stack exchange,提问作者Ayub Malik
相关产品推荐
相关产品推荐

