如何从服务器使用 Slack API 进行身份验证
How to authenticate with Slack API from server
我正在构建一个如下所示的 Slack 斜杠命令
/shoutout [@recipient with message]
这将触发 POST 到我的服务器,同时包含发件人和收件人的用户 ID。但是,我需要他们的全名。我想向 Slack API 发送请求以获取他们的名字,这似乎可以通过使用用户 ID 将 GET 发送到 https://slack.com/api/users.info 来实现。
我在理解如何执行此操作时遇到的问题与令牌要求有关。我知道如何使用我的工作区执行此操作(只需将我的工作区的 OAuth 令牌作为请求的一部分发送),但这如何与安装我的应用程序的其他工作区一起使用?换句话说,如何为安装我的应用程序的其他工作区获取有效的 OAuth 令牌?我是不是处理错了?
你走在正确的道路上。对于您的应用程序应该运行的每个 Slack 工作区,您确实需要一个单独的令牌。
要获取它,您的应用程序必须安装到每个工作区一次,并且您的应用程序需要捕获并存储将在安装过程中创建的令牌。安装过程是标准的 Oauth2.0 流程,通常由外部网站管理,该网站与工作空间的 Slack 协商 OAuth 流程。该网页通常有一个 "Add to Slack" 按钮,它将开始安装过程。
要做到这一点,您需要执行以下操作:
您需要创建一个 Slack 应用程序以获取客户端 ID 和客户端密码
在应用程序的管理页面上激活 Slack 应用程序的分发
创建处理 Oauth 流程的网页
这里是对 Slack 的 Oauth flow 更详细的描述。
这里是关于 Slack Button 的更多详细信息。
最后,这是一个 example PHP script 用于将 Slack 应用程序安装到工作区的方法。
我正在构建一个如下所示的 Slack 斜杠命令
/shoutout [@recipient with message]
这将触发 POST 到我的服务器,同时包含发件人和收件人的用户 ID。但是,我需要他们的全名。我想向 Slack API 发送请求以获取他们的名字,这似乎可以通过使用用户 ID 将 GET 发送到 https://slack.com/api/users.info 来实现。
我在理解如何执行此操作时遇到的问题与令牌要求有关。我知道如何使用我的工作区执行此操作(只需将我的工作区的 OAuth 令牌作为请求的一部分发送),但这如何与安装我的应用程序的其他工作区一起使用?换句话说,如何为安装我的应用程序的其他工作区获取有效的 OAuth 令牌?我是不是处理错了?
你走在正确的道路上。对于您的应用程序应该运行的每个 Slack 工作区,您确实需要一个单独的令牌。
要获取它,您的应用程序必须安装到每个工作区一次,并且您的应用程序需要捕获并存储将在安装过程中创建的令牌。安装过程是标准的 Oauth2.0 流程,通常由外部网站管理,该网站与工作空间的 Slack 协商 OAuth 流程。该网页通常有一个 "Add to Slack" 按钮,它将开始安装过程。
要做到这一点,您需要执行以下操作:
您需要创建一个 Slack 应用程序以获取客户端 ID 和客户端密码
在应用程序的管理页面上激活 Slack 应用程序的分发
创建处理 Oauth 流程的网页
这里是对 Slack 的 Oauth flow 更详细的描述。
这里是关于 Slack Button 的更多详细信息。
最后,这是一个 example PHP script 用于将 Slack 应用程序安装到工作区的方法。