Slack conversations.list 方法没有列出所有频道
Slack conversations.list method does not list all the channels
我有一个 slack 应用程序,我已经使用这个应用程序进行了身份验证。当我列出所有频道时,一些私人频道没有列出。我们是否需要工作区管理员的访问令牌来列出所有私有和 public 频道?
以下是 Slack 安全架构的工作原理,这解释了为什么您无法通过 conversations.list
获得所有私人频道。
一个用户只能看到他所属的私人频道。这包括具有管理员和所有者角色的用户,因此即使是工作区的创建者也看不到他未被邀请的私人频道。
有两种令牌:
- 用户令牌继承安装用户的访问权限
松弛的应用程序。因此,如果您安装了 Slack 应用程序,它只能看到
您所属的私人频道。
- 它与 机器人令牌 有点不同。使用机器人令牌,应用程序可以
只能看到机器人用户所属的私人频道。
有两种解决方法可以访问所有频道:
普通用户
确保通用用户(例如 slackadmin
)是所有私人频道的成员。然后使用他的访问令牌,Slack 应用程序也可以访问所有这些私人频道。这是一个组织解决方案。
收集所有用户令牌
收集您工作区中所有用户的令牌,然后使用这些令牌访问所有对话,包括。他们是私人频道的成员。
这可以通过要求每个用户安装一次 Slack 应用程序(通过标准 OAuth“Add to Slack”过程)来实现,这在 Slack 术语中称为配置。
在谷歌搜索大型组织中的类似问题时偶然发现了这个问题 - 我得到了 public 个频道,但并非所有频道都在显示。
事实证明,Slack 的默认限制是返回 100 个频道。要绕过这个,只需传递一个 limit: 9999
参数,例如:
app.client.conversations.list({
token: process.env.SLACK_BOT_TOKEN,
limit: 9999
}).then((res: any) => {...})
另请参阅:conversations.list API
response = client.conversations_list(types="public_channel, private_channel")
我有一个 slack 应用程序,我已经使用这个应用程序进行了身份验证。当我列出所有频道时,一些私人频道没有列出。我们是否需要工作区管理员的访问令牌来列出所有私有和 public 频道?
以下是 Slack 安全架构的工作原理,这解释了为什么您无法通过 conversations.list
获得所有私人频道。
一个用户只能看到他所属的私人频道。这包括具有管理员和所有者角色的用户,因此即使是工作区的创建者也看不到他未被邀请的私人频道。
有两种令牌:
- 用户令牌继承安装用户的访问权限 松弛的应用程序。因此,如果您安装了 Slack 应用程序,它只能看到 您所属的私人频道。
- 它与 机器人令牌 有点不同。使用机器人令牌,应用程序可以 只能看到机器人用户所属的私人频道。
有两种解决方法可以访问所有频道:
普通用户
确保通用用户(例如 slackadmin
)是所有私人频道的成员。然后使用他的访问令牌,Slack 应用程序也可以访问所有这些私人频道。这是一个组织解决方案。
收集所有用户令牌
收集您工作区中所有用户的令牌,然后使用这些令牌访问所有对话,包括。他们是私人频道的成员。 这可以通过要求每个用户安装一次 Slack 应用程序(通过标准 OAuth“Add to Slack”过程)来实现,这在 Slack 术语中称为配置。
在谷歌搜索大型组织中的类似问题时偶然发现了这个问题 - 我得到了 public 个频道,但并非所有频道都在显示。
事实证明,Slack 的默认限制是返回 100 个频道。要绕过这个,只需传递一个 limit: 9999
参数,例如:
app.client.conversations.list({
token: process.env.SLACK_BOT_TOKEN,
limit: 9999
}).then((res: any) => {...})
另请参阅:conversations.list API
response = client.conversations_list(types="public_channel, private_channel")