我正在构建一个 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 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
此外,如何管理不同工作区的机器人令牌/ 组织?
安装了您的应用程序的每个工作区都将拥有自己的机器人令牌。所以你需要有能力区分不同工作区的令牌。