我有一个基于c#的程序,可以通过我的SlackApp将消息和文件发送到我们的SlackWorkspace(我正在使用HttpClient
与Slack进行通信)。
现在,要在我的工作区中分发该程序并使之成为每个用户都有自己的身份,它表示我必须使用OAuth并创建针对每个用户的验证令牌。 它说在Slack文档中,我必须对我自己的服务器使用重定向URL(按照docs)。
我们有一台可能用于此目的的服务器。但是我以前从未做过这样的事情,而且我不清楚我必须从服务器中提供什么“答案”。我认为验证过程将由Slack处理。
有人知道如何解决这个问题吗?
在任何人问之前-是的,我们需要为每个人安装它并使其可识别。我们不能将“ SlackApp”用作用户。 :)
对于代码示例(在c#中)以及有关整个重定向事物如何工作的解释,我将非常感激。
答案 0 :(得分:1)
Slack使用标准的Oauth 2.0协议对应用进行身份验证,类似于Google和Facebook。
因此,“验证过程”确实主要由Slack处理(如here所述),但是您的Slack应用需要启动它并正确处理响应。这也是一个多步骤的过程,包括用户必须使用其凭据登录到Slack。这就是为什么您需要一个Web应用程序来处理整个过程的原因。
要使Slack应用能够通过Oauth生成令牌,需要一个Web应用:
使用ASP.NET Web Pages可能更容易实现,它可以利用现有Web服务器中的许多功能。
但是对于这个答案,让我们看一下.NET Core中的实现。为此,我们需要创建自己的Web服务器和一些基本的会话处理。主要概念包括:
HttpListener
类,用于提供侦听和响应HTTP请求的基本功能细节超出了一个答案的范围。但我很高兴在此GitHubGist上分享一个可行的示例实现。
顺便说一句:对于此类Web应用程序的本地开发,建议使用ngrok之类的VPN隧道,该隧道可以使本地计算机安全地暴露给Internet和Slack。