如何在用户安装我的松弛应用程序时获取Slack Workspace数据?
我的目标是收集安装了我的应用程序的所有工作区ID。
主要想法:
我可以通过这个过程解决这个问题吗? https://api.slack.com/docs/oauth
答案 0 :(得分:2)
如果您在OAuth流程中没有存储它们,则无法检索安装了Slack应用程序的所有现有工作区。
正如Erik所说,每次安装应用程序时都会获得工作区信息,但是您的工作就是存储该信息。
答案 1 :(得分:1)
每个Slack团队都需要通过OAuth流程将Slack应用程序安装到他们的工作区。这通常是通过调用您的应用程序的网页来实现的,该网页具有" Add to Slack"按钮并使用Slack服务器调节Oauth进程。
当OAuth流程成功时,您的应用将从Slack服务器接收工作区特定访问令牌以及团队信息,包括团队ID和团队域。您的应用应存储此信息,以便您可以在以后按要求检索和使用它。
如果您只存储了每个Slack团队的访问令牌,您可以使用该访问令牌调用auth.test
以检索有关已连接的Slack团队的更多信息,包括团队ID。
简而言之,是的,OAuth流程将帮助您收集这些信息。
答案 2 :(得分:0)
如果有人需要解决方案。 来自slack-docs:
是时候为您的应用设置重定向网址了。这是端点 Slack在a期间向服务器发送一个唯一的临时代码 用户的安装。然后,您的服务器将发送回此代码 使用您的客户端ID和客户端密钥,以便我们知道我们可以信任 你。
因此,如果安装您的应用的用户重定向到您的应用设置的redirect_url
。比用户接受权限:
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) });
在结果变量中,您将获得所有收集数据。