Slack机器人未加入私有频道时能否移除用户?conversations.kick报错求助
Slack频道用户移除问题解答
提问
我目前使用conversations.kick接口自动移除频道用户(无论频道为公开或私有),但遇到了not_in_channel错误。请问有没有无需机器人(即生成令牌的API用户)加入目标频道就能实现该操作的方法?
conversations.kick接口根本没法绕过“调用者必须在目标频道里”这个要求,你碰到的not_in_channel错误,就是因为生成令牌的账号(不管是机器人还是普通用户)没加入要操作的频道。
如果你的账号是工作区管理员,倒是有替代方案:使用Slack Admin API中的admin.conversations.removeUsers接口。这个接口允许管理员移除指定频道内的用户,哪怕管理员自己没加入目标频道(公开、私有频道都适用),但需要满足两个前提:
- 使用的令牌必须是带有
admin.conversations:write权限的工作区级令牌 - 调用接口的账号必须是工作区管理员
要是你用的是普通账号(非工作区管理员),那没别的办法——必须先加入目标频道,同时拥有频道内的用户移除权限(比如是频道管理员或所有者),才能正常调用conversations.kick接口。机器人账号也遵循同样的规则:用conversations.kick的话必须先加入频道,要是想用Admin API的接口,得给机器人配置工作区管理员权限或者对应的admin.conversations:write权限。
内容的提问来源于stack exchange,提问作者Leandro
相关产品推荐
相关产品推荐

