调用Slack PostMessage API返回account_inactive错误原因咨询
Slack 接口返回
account_inactive报错的触发原因 首先明确核心逻辑:这个报错是鉴权层错误,和你发消息的接收方状态没有任何关系,你之前测试给已停用用户发消息返回成功是完全正常的现象——chat.postMessage接口只要鉴权通过,就算接收方账号停用,也会先返回请求成功,后续消息实际投递失败会通过事件推送异步通知,根本不会触发鉴权类报错。
官方文档提到的「鉴权令牌对应的用户或工作区已被删除」,具体对应以下几种实际触发场景:
- 你当前使用的
xoxb-开头bot token,对应的Slack应用已经被工作区管理员从工作区卸载/移除,应用签发的所有token会立刻作废 - token所属的整个Slack工作区被注销、被Slack平台封禁,或是付费订阅严重逾期被暂停服务,工作区下所有历史签发的bot、user token都会统一失效
- 部分早期自定义bot的token和创建者账号强绑定,如果创建该bot的用户账号被工作区永久删除(不是临时停用),对应的bot token会连带失效
- 工作区管理员在应用管理后台手动吊销了该应用的所有访问令牌,旧token会立即失效,再调用任意接口都会返回该错误
你没有使用BoltJS框架、直接用JS SDK开发的实现方式不会触发这个错误,该错误和上层使用的SDK、框架无关,是Slack接口侧的鉴权校验结果。
快速排查方法
直接拿触发报错的token调用auth.test接口做校验即可,不需要传其他参数:
// 用你现有初始化好的JS SDK client直接调用 const authCheck = await client.auth.test(); console.log(authCheck);
如果调用auth.test时直接返回account_inactive,就可以100%确认是token本身失效,和发消息接口的参数、接收方状态无关,直接去Slack应用管理后台重新将应用安装到对应工作区,用新签发的xoxb-token替换旧token即可恢复正常。
内容的提问来源于stack exchange,提问作者Keshav S
相关产品推荐
相关产品推荐

