如何获得安装我的松弛应用程序的所有工作区的信息

如何在用户安装我的slack应用程序时获得Slack Workspace数据?

我的目标是收集安装我的应用程序的所有工作空间ID。

大意:

  • 用户有我的应用程序安装
  • 工作区ID(安装应用程序的位置)在授权发送到某个外部URL之后
  • 服务器免提请求

我可以通过这个过程解决这个问题吗? https://api.slack.com/docs/oauth

每个Slack团队都需要运行OAuth进程来将Slack应用程序安装到他们的工作区中。 这通常是通过调用你的应用程序的网页来实现的,该网页有一个“添加到松弛”button,并用Slack服务器调节Oauth进程。

当OAuth进程成功时,您的应用程序将收到特定于工作区的访问令牌以及有关来自Slack服务器的团队信息,包括团队ID和团队域。 您的应用程序应该存储此信息,以便您可以按要求稍后检索和使用它。

如果您仅存储每个Slack团队的访问令牌,则可以使用该访问令牌调用auth.test来检索有关连接的Slack团队的更多信息,包括团队ID。

所以简而言之,OAuthstream程会帮助您收集这些信息。

如果您未在OAuthstream程中存储它们,则无法检索安装Slack应用程序的所有现有工作区。

正如Erik所说,每次安装应用程序时都会得到工作区信息,但是存储这些信息是您的工作。

如果有人需要解决。 从闲置文件:

是时候为您的应用程序设置redirecturl了。 这是Slack在用户安装期间向您的服务器发送唯一临时代码的端点。 然后,您的服务器将发回此代码以及您的客户端ID和客户端密码,以便我们知道我们可以信任您。

所以如果有人安装你的应用程序,redirect到你的应用程序设置的redirect_url 。 比如果用户接受的权限:

  • Slack API将代码发送到您的服务器
  • 你必须发回代码。 节点示例如下所示:

const request = require('request-promise'); let options = { method: 'POST', uri: 'https://slack.com/api/oauth.access', formData: { client_id: "client_id", client_secret: "client_secret", code: req.query.code }, json: true }; request.post(options).then(result => { res.json(result) });

在结果variables中,您将拥有所有要收集的数据。