Slack API 和 OAuth 2.0

Slack API and OAuth 2.0

我目前正在尝试使用 SlackConnector 库在 C# 中开发应用程序。 SlackConnector

应用程序将接收消息并将消息发送到松弛通道和 DM。 (我可以使用测试令牌生成器成功地从我的 slack 发送和接收消息。)TEST TOKEN GENERATOR

我不明白的是,使用该应用程序的用户怎么可能授予访问其 Slack 帐户的完全授权,因此他们可以从那里以同样的方式发送和接收消息。

OAuth 2.0 是我需要使用的东西吗?我创建了一个松弛的应用程序并按照步骤从用户那里获取访​​问令牌但是由于某种原因访问令牌没有建立连接,就像测试令牌一样?我想用那个令牌你可以 post 代表用户的消息只不能接收消息只有有限的访问权限,不确定!!

有没有办法以编程方式获取登录用户生成的测试令牌?或者用户可以让我的桌面应用程序完全访问松弛帐户而无需手动生成测试令牌的方式?

即使我要以只有我一个用户的身份进入生产环境,我会使用什么访问令牌来使用相同的测试令牌?它不只是为了测试实际令牌在哪里吗?

在这里回答你的几个问题:

是的,您需要使用 OAuth 2.0 和 Slack 应用程序来提供您的集成,以便在其他 Slack 团队中安装。

是的,测试代币只是为了针对一个团队进行开发。它们代表创建它的任何帐户的全部功能,在创建它的团队的上下文中。

要连接到 RTM API 并读写 DM,您需要做出一些决定OAuth scopes 您想要请求哪些,以及您是否希望从您的应用程序的角度作为频道内的一种 "bot user" 进行操作,或者从使用您的应用程序的用户的角度进行操作。通常,应用程序会从自己的角度进行操作。

构建此类应用程序的最常见方式是请求 bot OAuth 范围,该范围授予一揽子权限。棘手的部分是机器人权限没有授予 OAuth 流程末尾的顶级 token——它们被授予 bot_user_token 你会在 bot 响应散列的一部分。使用该令牌可以让您连接到 RTM API 并通过直接消息与团队成员进行交互。 (有关 "Tokens and scopes".

的信息,请参阅 bot user 文档

如果您的意图是直接代表用户操作(发布和回复消息,就好像您是授权您的应用程序的用户一样),那么您需要请求非常不同的 OAuth 范围,这些范围将应用于最终 OAuth 响应中的顶级用户 token