如何从服务器使用 Slack API 进行身份验证
Posted
技术标签:
【中文标题】如何从服务器使用 Slack API 进行身份验证【英文标题】:How to authenticate with Slack API from server 【发布时间】:2018-07-12 07:14:35 【问题描述】:我正在构建一个如下所示的 Slack 斜杠命令
/shoutout [@recipient with message]
这将使用发件人和收件人的用户 ID 触发对我的服务器的 POST。但是,我需要他们的全名。我想向 Slack API 发送请求以获取他们的姓名,这似乎可以通过使用用户 ID 对 https://slack.com/api/users.info 进行 GET 来实现。
我在理解如何做到这一点时遇到的问题是令牌要求。我知道如何使用我的工作区执行此操作(只需将我的工作区的 OAuth 令牌作为请求的一部分发送),但是这将如何与安装我的应用程序的其他工作区一起使用?换句话说,我如何为安装我的应用程序的其他工作区获取有效的 OAuth 令牌?我是不是在错误地处理这个问题?
【问题讨论】:
【参考方案1】:你走在正确的道路上。您确实需要为您的应用程序应该运行的每个 Slack 工作区提供一个单独的令牌。
要获得它,您的应用必须安装到每个工作区一次,并且您的应用需要捕获并存储将在安装过程中创建的令牌。安装过程是标准的 Oauth2.0 流程,通常由外部网站管理,该网站与 Slack 协商 OAuth 流程以用于工作区。该网页通常有一个“添加到 Slack”按钮,它将开始安装过程。
要做到这一点,您需要执行以下操作:
您需要创建一个 Slack 应用来获取客户端 ID 和客户端密码
在应用的管理页面上激活 Slack 应用的分发
创建一个处理 Oauth 流程的网页
这里是 Slack 的 Oauth flow 的更详细说明。
这里有更多关于Slack Button的详细信息。
最后,这是一个 example php script,用于将 Slack 应用程序安装到工作区。
【讨论】:
以上是关于如何从服务器使用 Slack API 进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有客户端身份验证的情况下从服务器验证 Firebase 用户?
如何从 android 客户端进行经过身份验证的 django rest api 调用?
如何使用 Web API 来对 MVC 应用程序进行身份验证