其他用户如何为我正在开发的 Slack 应用程序获取令牌?

How can other users obtain tokens for my in-development slack app?

TLDR:我有一个 slack 应用程序,用于管理其开发工作区中的私人频道和继承我的用户权限的令牌。同一工作区中的其他人如何获取此应用程序的令牌而不是继承他们的用户权限?

好的,所以这个背景是:我需要根据一些或多或少复杂的 ldap 相关条件来管理一堆私人频道的成员资格。为此,我想编写一个简单的 Python 程序来获得相关频道的成员资格,使用它的 ldap 魔法来找出谁应该在哪里,然后让它成为现实。

我已经实现了这个并且到目前为止一切正常。现在的问题是,出于隐私原因,我(即我的 slack 用户)不能出现在所有这些频道中。我获得的 API 和 Bot 令牌继承了我自己的所有用户权限。这意味着我既不能看到也不能管理我不属于的频道。

根据我在 Slack API 的文档中阅读的内容,有一种方法可以让另一个用户通过我创建的应用程序的 OAuth 流程来获取令牌,获取他们自己的令牌,并将它们与我编写的 Python 程序一起使用。那很好,但我不知道该怎么做。

没有其他人可以直接访问该应用程序。文档使我似乎需要给人们一个特殊格式的 link("Add to Slack Button"),他们可以单击以完成整个过程。但这似乎需要 "redirect URL"。我不确定这是什么,文档也不是很清楚,但他们似乎假设该应用程序在某处服务器上 运行 并且需要回答来自 Slack 或其他东西的请求。事实并非如此。这是一个相当简单的 Python 脚本,而不是一些会响应 Slack 事件的始终在线的云应用程序。

所以我感觉好像错过了什么。要么我对它应该如何工作有一些基本的误解,要么有一种简单的方法可以让其他人获得这样的令牌,但我没有看到它。

是的。如果您希望其他用户验证您的应用程序(例如生成令牌以便您的应用程序可以代表用户执行任务),您需要创建一个 installation routine using Ouath 2.0。该安装例程是一个小型 Web 应用程序,具有 "Add to Slack" 按钮、HTML 界面并且能够 运行 通过 Oauth 2.0 进程。该网络应用程序需要 运行 在 public 网络服务器上。

出于开发目的,Web 服务器还可以 运行 在您的本地开发机器上使用 VPN 隧道连接到 public 互联网。 Slack 建议为此目的使用 VPN 服务 ngrok