你应该使用Slack的Bolt Python SDK来处理OAuth安装流程吗?



我正在尝试开发一个简单的事件驱动Slack机器人程序,该程序使用用户和机器人程序令牌对Slack的Web API执行一些经过验证的API调用。除了我不知道如何在安装后使用Bolt来存储和管理OAuth令牌之外,这个机器人是有效的。这是我第一次使用OAuth,所以如果我遗漏了任何明显的内容,我深表歉意。

我找到的关于使用它的最佳指南来自以下链接:https://slack.dev/bolt-python/concepts#authenticating-oauth

然而,我并不完全理解什么是installation_store或state_store,更重要的是,我不确定如何根据需要访问存储的令牌。此外,这个解决方案似乎依赖于本地持久性,但Heroku(我部署机器人的地方(不支持这一点。我更喜欢基于云的解决方案。

因此,我决定构建一个简单的Flask应用程序来处理安装流程,进行身份验证API调用,并将令牌存储在相应的DynamoDB表中。令牌存储为键值对,密钥是team_id或user_id,但我认为如果一个用户在多个工作区中使用机器人,这是不可行的。

此外,我觉得这个解决方案很难维护。处理OAuth流的最佳方式是什么?

我在试图自己解决这个问题时偶然发现了这个问题。我可以看到slack_sdk确实支持其他安装和状态存储,如sqllite、aws,。。。不确定为什么在bolt for python中没有执行同样的操作。拥有其他商店的这一功能对安全性会更好。

所以我可能建议现在使用slack_sdk而不是slack_bolt?

最新更新