如何在可分发的 Slack 应用程序中以编程方式获取和管理用户令牌?

问题描述 投票:0回答:1

我正在构建一个 Slack 应用程序,计划将其分发给多个组织/工作区。我使用通过 Slack Oauth2 流程获得的机器人令牌 (https://api.slack.com/authentication/oauth-v2) 。机器人令牌具有正确的范围,让我可以在工作区上执行操作。我有一些需要用户令牌的功能,例如,为用户设置提醒,这需要用户令牌。这是在用户与应用程序进行一些交互时设置的,例如首次安装它或打开主页或单击按钮。如何获取用户令牌,如何存储/重用它们?

此外,如何管理不同工作区/组织的机器人令牌?

我的后端/应用程序本质上是一个Python Flask应用程序。谢谢!

我尝试使用机器人令牌设置提醒,但收到此错误,

slack_sdk.errors.SlackApiError: The request to the Slack API failed. (url: https://www.slack.com/api/reminders.list) The server responded with: {'ok': False, 'error': 'not_allowed_token_type'}

slack slack-api
1个回答
0
投票

如何获取用户令牌,如何存储/重用它们?

当用户使用 Slack Oauth2 流程安装您的应用程序时,您应该从 Slack 获得以下令牌响应:

{
"ok": true,
"access_token": "xoxb-<...>",    <---BOT TOKEN
"token_type": "bot",
<...>
"authed_user": {
    "access_token": "xoxp-1234", <---USER TOKEN
    "token_type": "user"
    <...>
   }
}

当您需要代表安装您的应用程序的用户执行操作时,请使用 user 令牌;当您作为机器人执行操作时,请使用 bot 令牌。按照 Slack 文档的建议将令牌存储在某个安全的地方:https://api.slack.com/authentication/best-practices

此外,如何管理不同工作区的机器人令牌/ 组织?

安装了您的应用程序的每个工作区都将拥有自己的机器人令牌。所以你需要有能力区分不同工作区的令牌。

© www.soinside.com 2019 - 2024. All rights reserved.