Подтвердить что ты не робот

Как подключиться к Slack-каналу в качестве пользователя ботов в режиме реального времени?

channels.join не разрешено для пользователей ботов. Я бы хотел, чтобы мой RTM-использование бота прослушивал каналы, отличные от тех, которые перечислены на странице интеграции ботов.

Я не вижу способа изменить каналы на странице интеграции ботов:

bot integration page

Это просто ограничение ботов, или я пропустил что-то фундаментальное здесь?

4b9b3361

Ответ 1

У меня была такая же проблема, и я не знал, почему мой бот только слушает определенные каналы.

Ваш бот должен быть приглашен на каждый канал пользователем. Запустите эту команду в нужном канале в приложении Slack, чтобы сделать это

/invite @<your_bot_name>

После этого в канале они смогут прослушивать события.

Ответ 2

Это все еще ограничение ботов по состоянию на май 2017 года из-за ошибки, которую он вводит. см. ответ paulhammod на https://github.com/slackapi/node-slack-sdk/issues/26, Правильный способ добавления бота - это косой чертой /invite @<bot.user> <channel_name>, как указал @MattGifford.

Тем не менее, @nafg представил интересное обходное решение. Если вы создаете персональный API_TOKEN для своей учетной записи, вы можете использовать его для приглашения бота. Например, в python можно запустить:

import slackclient sc = slackclient.SlackClient(<PERSONAL_API_TOKEN>) sc.api_call('channels.invite', channel=<channel_id>, user=<user_id>)

Это вызовет бота на канал. Если вы хотите автоматизировать приглашение своего бота на новые каналы, вы можете посмотреть прослушиватели событий в API, найденном в https://api.slack.com/rtm

Пока вы разрешаете использовать API_TOKEN для этой цели, кажется, что он будет работать по мере необходимости, хотя и менее удобный.

Ответ 3

Я на самом деле не пробовал это, но я бы ожидал, что вы можете сначала вызвать channels.join от имени фактического пользователя (например, самостоятельно), а затем вызвать channels.invite в качестве этого пользователя, чтобы добавить бота к этому каналу. Я ожидаю, что это разрешено, и тогда он позволит боту взаимодействовать с этим каналом. Таким образом, вы можете автоматизировать все.