如何在 Python 中处理 slack 应用程序中的许多用户?如何使用多个令牌?
How to handle many users in slack app for in Python? How to use the multiple tokens?
我正在制作一个 slack 机器人。我一直在使用 python slackclient 库来开发机器人。它与一个团队一起工作得很好。我正在使用 Flask Webframework。
由于许多人通过 "Add to Slack" 按钮将应用程序添加到 slack,我得到了他们的 bot_access_token。
现在
我应该如何 运行 代码 有这么多 Slack 令牌。我是否应该将它们存储在一个列表中,然后使用 for 循环遍历所有令牌!但这并不好,因为我可能无法处理同时收到的消息或事件或 "its a good way"。
如果不行还有别的办法吗?
如果您使用的是实时 API,您需要为每个团队打开一个 WebSocket。是的,您通常会使用循环来建立这些连接。根据 slackclient
的工作方式,您可能需要在单独的线程或进程中启动每个。
EDIT:正如下面评论中提到的,线程优先于多进程。更好的方法是使用比线程更轻的东西,但在你学习的这一点上,我不会在这里过度优化。
SECOND EDIT:看起来 python-slackclient
具有非阻塞读取,因此您甚至不需要使用线程。例如。以下不会阻止:
for team in teams:
for event in team.client.rtm_read():
# process the event for that team
(假设某种 "team" 对象包含 SlackClient
的实例。)
你确实需要
- 存储每个团队令牌。 请记得加密
- 当团队安装您的应用时,创建一个新的 RTM 连接。当您的 app/server 重新启动时,遍历所有团队,为每个团队打开一个 RTM 连接
- 每个连接都将接收来自该团队的事件,并且仅限该团队。您不会在同一连接上收到所有通知
(也许您来自 Facebook Messenger 机器人后台,所有通知都到达同一个 webhook?Slack 不是这种情况)
我正在制作一个 slack 机器人。我一直在使用 python slackclient 库来开发机器人。它与一个团队一起工作得很好。我正在使用 Flask Webframework。
由于许多人通过 "Add to Slack" 按钮将应用程序添加到 slack,我得到了他们的 bot_access_token。
现在 我应该如何 运行 代码 有这么多 Slack 令牌。我是否应该将它们存储在一个列表中,然后使用 for 循环遍历所有令牌!但这并不好,因为我可能无法处理同时收到的消息或事件或 "its a good way"。 如果不行还有别的办法吗?
如果您使用的是实时 API,您需要为每个团队打开一个 WebSocket。是的,您通常会使用循环来建立这些连接。根据 slackclient
的工作方式,您可能需要在单独的线程或进程中启动每个。
EDIT:正如下面评论中提到的,线程优先于多进程。更好的方法是使用比线程更轻的东西,但在你学习的这一点上,我不会在这里过度优化。
SECOND EDIT:看起来 python-slackclient
具有非阻塞读取,因此您甚至不需要使用线程。例如。以下不会阻止:
for team in teams:
for event in team.client.rtm_read():
# process the event for that team
(假设某种 "team" 对象包含 SlackClient
的实例。)
你确实需要
- 存储每个团队令牌。 请记得加密
- 当团队安装您的应用时,创建一个新的 RTM 连接。当您的 app/server 重新启动时,遍历所有团队,为每个团队打开一个 RTM 连接
- 每个连接都将接收来自该团队的事件,并且仅限该团队。您不会在同一连接上收到所有通知
(也许您来自 Facebook Messenger 机器人后台,所有通知都到达同一个 webhook?Slack 不是这种情况)