Slack API and OAuth 2.0

本文关键字:OAuth and API Slack | 更新日期: 2023-09-27 18:12:46

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

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

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

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

是否有方法以编程方式获得已登录用户生成的测试令牌?或者用户可以让我的桌面应用程序完全访问slack帐户,而无需手动生成测试令牌?

即使我要去生产只有我作为一个用户访问令牌我将使用相同的测试令牌吗?它不只是用于测试实际的标记在哪里吗?

Slack API and OAuth 2.0

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

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

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

要连接到RTM API并读写dm,你需要做出一些决定,关于你想要请求哪些OAuth作用域,以及你是想从你的应用程序作为通道内的"bot用户"的角度来操作,还是从使用你的应用程序的用户的角度来操作。通常,应用程序从他们自己的角度来操作。

构建此类应用程序的最常见方式是请求bot OAuth作用域,该作用域授予包权限。棘手的部分是bot权限没有在OAuth流的末尾授予顶级token—它们被授予响应散列的bot部分下的bot_user_token。使用该令牌将允许您连接到RTM API,并通过直接消息与团队成员进行交互。(关于"令牌和作用域"的信息,请参阅bot用户文档。

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