用途:用于开发交互式 Slack 机器人,处理实时事件与交互回调。
主要能力:涵盖两种接入方式。Socket Mode 基于 WebSocket,适用于应用位于防火墙后、没有公网 HTTPS 端点、开发测试或运行在本地的场景;Events API 基于 HTTP Webhook,适用于有公网 HTTPS 端点、生产云部署或偏好 Webhook 架构的场景。事件处理覆盖消息事件、应用提及、表情回应、频道生命周期、成员加入、用户资料变更等;交互部分覆盖按钮点击、模态提交与斜杠命令,并可在线程内回复、更新消息。
使用方式:Socket Mode 下用 slack.New 传入 SLACK_BOT_TOKEN 与 OptionAppLevelToken 的 SLACK_APP_TOKEN,再用 socketmode.New 创建客户端,遍历 client.Events,对 EventTypeEventsAPI 调用 client.Ack 后处理事件,最后 client.Run()。Events API 相关实现参见 events-api-webhooks.md,Socket Mode 完整实现参见 socket-mode-setup.md,交互模式参见 interactive-components.md,斜杠命令参见 slash-commands.md,事件目录参见 event-types.md。连接管理上可用 context 配合 signal.Notify 监听中断信号实现优雅关闭,并处理错误事件类型。
限制与注意:需确认机器人消息与用户消息的过滤;处理器中避免阻塞,长时间操作应使用 goroutine;必须及时确认事件,否则会超时;Socket Mode 需处理重连;Events API 需校验请求签名。