Ошибка «Ошибка подключения RTM» при попытке подключения к Slack с помощью RTM API - PullRequest
2 голосов
/ 28 января 2020

Я использую следующий Python код из Slack's "Миграция в 2.x" github docs

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 * Bot для моего приложения, найденный здесь: enter image description here

Я получаю следующую ошибку:

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

Почему я получаю эту ошибку?!?!?!

Другой контекст:

  • Я нахожусь на Ма c В отличие от других, у которых были проблемы в сети с использованием Windows машин.
  • Я запускаю код локально, в виртуальной среде, через python script.py в моем терминале.
  • Последний раз я успешно запускал эту программу в декабре и видел, что Slack отказался от поддержки RTM API (?) De c 31st 2019?
  • Приложение было переустановлено в мою рабочую область, а ключи не изменились.
  • Я думаю, что это может быть что-то, что мне нужно настроить / изменить / установить / обновить sh на API .slack.com / apps, поскольку он сломался без каких-либо изменений кода.

Почему я сосредоточился на отладке примера для 1.x? Мой код ранее работал используя rtm_connect / 1.x, используя те же команды, что и в примере кода, и без каких-либо изменений кода он перестал работать. Мой код и пример кода выдают одинаковые ошибки, поэтому я использую пример кода, чтобы упростить отладку. Я хотел бы исправить это перед началом процесса перехода на 2.x, чтобы я мог начать с рабочего кода, прежде чем приступать к длинной серии изменений, которые могут вносить свои собственные ошибки.

Ответы [ 2 ]

0 голосов
/ 10 мая 2020

Я не думаю, что эта проблема связана с токеном доступа OAuth пользователя бота, на мой взгляд, вы используете правильный (xoxb-). Однако эта проблема может быть связана с Slack App. Обратите внимание, что RTM не поддерживается для новых гранулярных областей Slack App (см. python проблема клиента # 584 и проблема клиента узла # 921 ). Если вы хотите использовать RTM, вам лучше создать classi c slack приложение с OAuth Scope bot.

0 голосов
/ 20 февраля 2020

Я не уверен, является ли это причиной, но я сталкивался с такими же проблемами раньше. Ответ, который я нашел на Slack Github, заключается в том, что новый xoxob- * не поддерживает RTM.

Пожалуйста, обратитесь к этому веб-сайту: - https://github.com/slackapi/python-slackclient/issues/326.

Так что я используйте мой токен доступа OAuth вместо токена доступа пользователя OAuth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...