You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取Slack工作区已安装应用列表?Users.list方法存在遗漏

获取Slack工作区已安装应用列表的正确方法

嘿,我来帮你搞定这个问题!你之前用Users.list提取Bot用户来识别应用的思路,确实能覆盖一部分带Bot的应用,但确实会漏掉那些没有创建Bot用户的集成——比如一些只提供webhook服务、或者纯后台功能的应用,这很正常。

其实Slack官方早就提供了专门的API接口来解决这个需求,比你之前的方法靠谱多了:

核心方案:使用apps.list Web API接口

这个接口是Slack专门用来获取工作区中所有已安装应用的官方方法,不管应用有没有Bot用户,都会被列出来,完美解决你遇到的遗漏问题。

关键细节

  • 权限要求:调用这个接口需要你的API令牌拥有admin权限,或者更精细的apps:read权限。你得确保生成令牌的时候勾选了对应的权限范围,不然会返回权限错误。
  • 调用示例(curl)
    curl -X GET "https://slack.com/api/apps.list" \
      -H "Authorization: Bearer YOUR_WORKSPACE_API_TOKEN"
    
  • 返回内容:接口会返回一个包含所有已安装应用的数组,每个应用条目里有id(应用唯一ID)、name(应用名称)、description(应用描述)、installed_team(安装的工作区信息)等字段,足够你完整识别所有应用。

Users.list的对比

  • Users.list只能返回工作区的用户(包括Bot类型用户),但很多应用不需要创建Bot就能运行,这类应用就会被完全漏掉。
  • apps.list是直接针对应用安装状态的接口,是Slack官方推荐的获取已安装应用列表的正确方式,覆盖所有类型的应用集成。

小提醒

要注意使用的是工作区级别的API令牌,而不是单个应用的令牌——单个应用的令牌只能查看自身的信息,没有权限获取整个工作区的应用列表哦。

内容的提问来源于stack exchange,提问作者r-puri

火山引擎 最新活动