我使用的是Slack的“迁移到2.x” github文档中的以下Python代码
from slackclient import SlackClient
slack_token = os.environ["SLACK_API_TOKEN"]
client = SlackClient(slack_token)
def say_hello(data):
if 'Hello' in data['text']:
channel_id = data['channel']
thread_ts = data['ts']
user = data['user']
client.api_call('chat.postMessage',
channel=channel_id,
text="Hi <@{}>!".format(user),
thread_ts=thread_ts
)
if client.rtm_connect():
while client.server.connected is True:
for data in client.rtm_read():
if "type" in data and data["type"] == "message":
say_hello(data)
else:
print "Connection Failed"对于SLACK_API_TOKEN,我正在为我的应用程序使用Bot用户OAuth访问令牌,如下所示:

我得到的错误如下:
Failed RTM connect
Traceback (most recent call last):
File "/Users/.../slackbot/slackbot_env/lib/python3.8/site-packages/slackclient/client.py", line 140, in rtm_connect
self.server.rtm_connect(use_rtm_start=with_team_state, **kwargs)
File "/Users/.../slackbot/slackbot_env/lib/python3.8/site-packages/slackclient/server.py", line 168, in rtm_connect
raise SlackLoginError(reply=reply)
slackclient.server.SlackLoginError
Connection Failed我为什么要犯这个错误?!?!
其他上下文:
python script.py运行代码。为什么要集中调试1.x的示例?我的代码以前使用与示例代码相同的命令使用rtm_connect /1.x,并且没有任何代码更改就停止工作了。我的代码和示例代码会产生相同的错误,因此我使用示例代码来简化调试。我想在开始迁移到2.x之前修复这个问题,所以我可以先从工作代码开始,然后再开始一系列可以引入自己错误的更改。
发布于 2020-05-09 22:42:36
我认为这个问题与Bot用户OAuth访问令牌无关,在我看来,您使用的是正确的访问令牌(xoxb-)。然而,这个问题可能与Slack有关。注意,新的scopes粒度作用域不支持RTM (请参阅python客户端问题#584和节点客户端问题#921)。如果您想使用RTM,您应该创建一个带有经典松弛应用程序作用域bot的bot。
发布于 2020-02-20 01:50:18
我不知道这是不是原因,但我以前也遇到过同样的问题。我发现的答案是,新的xoxob-*不支持RTM。
请参考此网站:- https://github.com/slackapi/python-slackclient/issues/326。
因此,我使用我的OAuth访问令牌,而不是Bot用户OAuth访问令牌。
https://stackoverflow.com/questions/59955434
复制相似问题