无需创建Slack App,如何开发Slack与Web应用的消息加载中间件?
无需创建Slack App加载用户历史消息的最优方案
先明确:Slack目前没有官方合法途径能让你不创建Slack App就获取用户授权、拉取其历史消息——所有合规的用户令牌获取流程都得依托一个Slack App。但别担心,创建Slack App完全免费,操作超简单,这也是当前实现需求的唯一靠谱方案,具体步骤如下:
创建极简Slack App
登录Slack开发者平台建个新App,不用搞复杂功能,只需要开启「OAuth & Permissions」模块,添加你需要的用户级权限:channels:history(拉取公开频道消息)groups:history(拉取私有组消息)im:history(拉取一对一私信)mpim:history(拉取多人私信)
按需选就行,不用全加。
实现用户授权流程
引导用户在你的Web应用里发起Slack授权请求,拿到授权码后,用你的App的Client ID和Client Secret换一个用户级访问令牌(User Token)。这个令牌就代表授权用户的身份,能调用Slack API拉取他有权限看的所有历史消息。拉取历史消息
用用户令牌调用conversations.history接口,先通过conversations.list获取用户参与的所有会话ID,再传入目标会话ID拉取消息。注意Slack API默认一次最多返回100条,要通过cursor参数分页翻页,把所有历史消息拉全。中间件核心设计点
- 令牌管理:给每个用户存好他的令牌,定期检查有效性,过期了就引导用户重新授权。
- 限流重试:Slack API有调用频率限制,中间件要做好限流和重试逻辑,别被封了接口。
- 消息预处理:拉到消息后,在中间件里完成格式转换、内容过滤这些操作,再传给你的Web应用。
要是你死磕不想建Slack App,唯一的歪路子是用已废弃的Legacy Token,但这个早就被Slack停更了,安全风险极高,说不定哪天就用不了,绝对不能在生产环境用。
内容的提问来源于stack exchange,提问作者isom
相关产品推荐
相关产品推荐

