如何使用多令牌使用pythonslackclient RTM(botuser)

2024-05-15 07:46:32 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,基于python slackclient文档python-slackclient将slack自定义bot用户集成到slack应用程序中有一个问题

使用RTM

import time
from slackclient import SlackClient

token = "xoxp-xxxxxxxxx"# found at https://api.slack.com/web#authentication
sc = SlackClient(token)
if sc.rtm_connect():
    while True:
         print sc.rtm_read()
         time.sleep(1)
else:
    print "Connection Failed, invalid token?"

该代码适用于bot用户令牌,但由于我使用oauth,所以每次用户安装我的应用程序以代表我的应用程序到添加的团队时,我都需要使用bot_access_token连接RTM

有什么解决方案或例子吗?在

干杯


Tags: 用户from文档importtoken应用程序timebot
2条回答

如果计划安装bot,可以循环令牌进行连接 对于多个团队,则可以将代码转换为:-

clients = [SlackClient(token) for t in tokens]
for client in clients:
    client.rtm_connect()
while True:
    for client in clients:
        print client.rtm_read()
        time.sleep(1)

你的问题必须理解。你写道:

since I use oauth, I need to connect RTM using the bot_access_token everytime user install my app to act on behalf my app to the added team

你在这里使用的访问令牌。。。在

token = "xoxp-xxxxxxxxx"# found at https://api.slack.com/web#authentication

…应与与bot关联的访问令牌相同。(你应该让你的机器人使用你自己的个人访问令牌!)您可以在https://my.slack.com/services/new/bot获取bot的访问令牌(假设您在跟踪该链接的浏览器中登录Slack)。在

如果您参与多个Slack“team”(一个Slack“team”基本上是一个公司),那么您需要为每个“team”设置一个单独的bot。每个机器人都有不同的访问令牌。要将正确的访问令牌传递给bot,您可以添加一个命令行参数,或者从环境变量中读取令牌,或者从磁盘读取它,以及其他选项。在

相关问题 更多 >