如何获得安装我的松弛应用程序的所有工作区的信息
如何在用户安装我的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中,您将拥有所有要收集的数据。