簡體   English   中英

嘗試使用 RTM API 連接到 Slack 時出現“失敗的 RTM 連接”錯誤

[英]"Failed RTM connect" error when trying to connect to Slack with RTM API

我正在使用 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 ,我正在為我的應用程序使用機器人用戶 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

為什么我收到這個錯誤?!?!?!

其他上下文:

  • 我在 Mac 上,不像其他人在使用 Windows 機器在線時遇到問題。
  • 我通過終端中的python script.py在虛擬環境中本地運行代碼。
  • 我上次成功運行它是在 12 月,並且看到 Slack 放棄了對 RTM API 的支持(?)2019 年 12 月 31 日?
  • 該應用程序已重新安裝到我的工作區,並且密鑰沒有更改。
  • 我認為這可能是我需要在 api.slack.com/apps 端配置/更改/設置/刷新的東西,因為它在沒有發生任何代碼更改的情況下就崩潰了。

為什么我要專注於調試 1.x 的示例? 我的代碼以前使用 rtm_connect / 1.x 使用與示例代碼相同的命令工作,並且沒有任何代碼更改它已停止工作。 我的代碼和示例代碼產生相同的錯誤,因此我使用示例代碼來簡化調試。 我想在開始遷移到 2.x 的過程之前解決這個問題,這樣我就可以在開始進行一系列可能會引入自己的錯誤的更改之前從工作代碼開始。

我認為這個問題與 Bot 用戶 OAuth 訪問令牌無關,在我看來,您使用的是正確的( xoxb- )。 但是,此問題可能與 Slack 應用程序有關。 請注意,新的 Slack App 粒度范圍不支持 RTM(請參閱python 客戶端問題 #584節點客戶端問題 #921 )。 如果您想使用 RTM,您應該使用 OAuth Scope bot創建一個經典的 slack 應用程序

我不確定這是否是原因,但我之前遇到過同樣的問題。 我在 Slack Github 上找到的答案是新的 xoxob-* 不支持 RTM。

請參考此網站: - https://github.com/slackapi/python-slackclient/issues/326

所以我使用我的 OAuth 訪問令牌而不是 Bot 用戶 OAuth 訪問令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM