如何获取Slack User Token,让Slack App代用户发送消息
实现Slack App用户授权获取User Token方案
完全可行,这是Slack OAuth 2.0授权流程的标准应用场景,具体步骤如下:
1. 配置Slack App OAuth权限
- 登录Slack开发者后台,进入你的App管理页,打开OAuth & Permissions标签
- 在User Token Scopes区域,添加所需权限:比如实现代发消息必须的
chat:write,如果需要其他用户级权限也一并添加 - 配置Redirect URLs:填写用户授权完成后,Slack跳转回你的服务的HTTPS地址(开发阶段可通过ngrok等工具生成临时HTTPS地址)
2. 引导用户完成授权流程
- 构造授权链接,格式如下:
替换https://slack.com/oauth/v2/authorize?client_id=你的Client ID&scope=应用级权限(可选)&user_scope=chat:write你的Client ID为App基本信息页中的Client ID;user_scope必须包含你需要的用户权限(比如chat:write) - 将该链接提供给用户:可以通过Slack内的应用消息、你的服务网页入口等方式展示,用户点击后会跳转至Slack官方授权页面,确认授权你的App访问其账户
- 用户确认授权后,Slack会跳转至你配置的Redirect URL,并携带
code授权码参数
3. 兑换用户的User Token
- 后端服务接收到
code后,向Slack API发送POST请求:https://slack.com/api/oauth.v2.access - 请求参数需包含:
client_id:你的App Client IDclient_secret:你的App Client Secret(基本信息页获取)code:用户授权后得到的code参数redirect_uri:与之前配置的Redirect URL完全一致
- 接口返回结果中,
authed_user.access_token即为该用户的User Token,需将其安全存储至数据库,后续调用Slack API代用户发消息时使用
注意事项
- User Token与用户账户绑定,每个用户授权后会生成唯一令牌,需妥善加密存储,禁止泄露
- 若需要长期有效令牌,可在授权链接中添加
user_scope=offline_access,获取refresh_token用于令牌过期时自动刷新,无需用户重新授权 - 测试阶段可使用OAuth页面的Test Token Generator生成测试用User Token,但正式环境必须走完整OAuth流程
内容的提问来源于stack exchange,提问作者Questions
相关产品推荐
相关产品推荐

