如何自动从 Slack 获取访问令牌?

Posted

技术标签:

【中文标题】如何自动从 Slack 获取访问令牌?【英文标题】:How can I automate getting an access token from Slack? 【发布时间】:2017-11-11 07:57:45 【问题描述】:

我想在 Apigee 上建立一个警报系统,它会自动向 Slack 发送警报,而无需人工干预。

但是,我在他们的 api 网站上找到的唯一 Slack 的 OAuth 流程似乎需要用户手动输入他们的凭据:https://api.slack.com/docs/oauth

如何自动从 Slack 获取访问令牌,而无需手动输入凭据?

【问题讨论】:

【参考方案1】:

我认为您可能误解了 Oauth 的概念。它应该工作的方式是,您每个 Slack 团队只运行一次该过程(通常在将 Slack 应用程序安装到您的 Slack 团队时),然后存储您收到的访问令牌以供将来参考(例如在数据库中)。因此,每当您的 Slack 应用在安装后需要访问令牌时,它始终可以重复使用它在安装期间收到的访问令牌。

如果您不需要任何脚本来运行安装并且您只需要访问令牌,您也可以直接从 Slack 安装您的 Slack 应用程序(在“您的应用程序”下),然后将生成的访问令牌复制并粘贴到您的应用程序配置。查看this 文档了解更多信息。

【讨论】:

我不认为这个问题是不合理的。我们的团队深入研究基础设施即服务,而 Slack 是我们自动化链中不可或缺的一部分。我们的目标是让我们的软件设置和配置一切。我们会将 Slack 帐户凭据放在保险库中,并让我们的自动化与 Slack 服务器交互以生成访问令牌,而无需进一步的人工交互。这在启动多个实例时变得尤为重要。所以我想说,请有人真正回答最初的问题。 据我了解,您的要求与此问题的原作者不同。所以我认为如果你问自己的问题会更有帮助? 要求相同,道理不同【参考方案2】:

如果您动态生成 webhook,则每次都需要 OAuth 2.0。但是,如果您使用 Web API chat.postMessage 方法,它只需要令牌(在 OAuth & Permissions 部分下)发出 HTTP POST 请求以发送通知。

【讨论】:

以上是关于如何自动从 Slack 获取访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 GoogleCredential 获取访问令牌?

如何从贝宝配置文件中获取访问令牌

如何从数据中仅获取访问令牌

如何从 passportjs 中的刷新令牌中获取新的 Google oauth 访问令牌

如何使用 jQuery 或 php 从 Instagram 令牌获取访问令牌

自动进行Facebook页面访问令牌生成