Skip to main content

Как это работает

Коннектор Slack индексирует все публичные каналы заданного рабочего пространства. Чтобы индексировать приватные каналы, добавьте приложение Slack в приватный канал. Для организаций Slack Enterprise Grid одна установка охватывает все рабочие пространства организации. См. настройку Enterprise Grid ниже.

Настройка

Авторизация

1

Требование к администратору

Примечание: чтобы настроить коннектор, нужно быть администратором рабочего пространства Slack
2

Откройте приложения Slack

Откройте и войдите на https://api.slack.com/apps.
3

Создайте новое приложение Slack

Создайте новое приложение Slack:
  • Нажмите кнопку Create New App в правом верхнем углу.
  • Выберите вариант From an app manifest.
  • Выберите нужное рабочее пространство в раскрывающемся списке и нажмите Next.
Создание приложения Slack с выбранным вариантом манифеста
4

Настройте манифест приложения

Выберите вкладку «YAML», вставьте в текстовое поле следующий манифест и нажмите Next:
5

Создайте приложение

Нажмите кнопку Create.
6

Откройте OAuth permissions

На странице приложения откройте вкладку OAuth & Permissions в заголовке Features.
7

Скопируйте токен OAuth

Скопируйте Bot User OAuth Token, он будет использоваться для доступа к Slack.
Страница OAuth & Permissions в Slack с Bot User OAuth Token

Индексирование

1

Откройте коннектор

Откройте панель коннекторов и выберите коннектор Slack.
2

Укажите учётные данные

Вставьте Bot User OAuth Token в Step 1 Provide CredentialsНастройки коннектора Slack в Yahont с полем ввода Bot User OAuth Token
3

Задайте ID рабочего пространства и подключите

Задайте Workspace ID (см. ниже) и нажмите Connect.
Где найти ID рабочего пространства Slack в конфигурации приложения Примечание: первая индексация получает все публичные каналы и занимает больше времени, чем последующие обновления.

Настройка Enterprise Grid

Если ваш Slack — организация Enterprise Grid с несколькими рабочими пространствами, процесс создания приложения выполняется один раз на уровне организации, и в Yahont используется один токен бота уровня организации. Slack по-прежнему требует, чтобы администратор организации выбрал, в какие рабочие пространства разворачивается бот (он не разворачивается автоматически во все рабочие пространства только потому, что приложение одобрено на уровне организации). Yahont автоматически определяет Grid по токену бота и индексирует каждое рабочее пространство, в которое развёрнут бот.
Для установки на уровне организации нужно быть Org Owner или Org Admin организации Slack Enterprise Grid.

Чем отличается от настройки одного рабочего пространства

  • Манифест приложения должен включать развёртывание на уровне организации и область team:read.
  • Вы устанавливаете приложение в организацию один раз (одно подтверждение OAuth от Org Admin), но также должны выбрать, в какие рабочие пространства организации разворачивается бот — Yahont может индексировать только те рабочие пространства, участником которых бот действительно является.
  • Ссылки на каналы в проиндексированных документах преобразуются в правильный URL для каждого рабочего пространства.
  • Права на документы публичных каналов ограничиваются пользователями рабочих пространств, в которые канал расшарен (а не всей организацией), поэтому пользователь рабочего пространства A не увидит в Yahont документы публичного канала рабочего пространства B.

Авторизация (Grid)

1

Создайте новое приложение Slack

На https://api.slack.com/apps нажмите Create New App → From an app manifest. Выберите любое рабочее пространство в вашей организации Grid в качестве рабочего пространства разработки (манифест ниже повышает приложение до уровня организации при установке).
2

Используйте манифест Grid

Вставьте следующий манифест. Два отличия от манифеста для одного рабочего пространства — org_deploy_enabled: true и добавленная область бота team:read:
3

Установите в организацию

Откройте OAuth & Permissions и нажмите Install to Organization (а не «Install to Workspace»). Подтвердите запрос как Org Admin. Это единое подтверждение OAuth — оно не разворачивает бота ни в одном рабочем пространстве.
4

Разверните бота в каждом нужном рабочем пространстве

Slack не разворачивает одобренные организацией приложения автоматически во все рабочие пространства. Откройте панель администратора организации Grid (https://<your-org>.enterprise.slack.com/admin) → Apps → OnyxConnector и выберите рабочие пространства, в которые нужно развернуть бота. Без этого шага auth.teams.list возвращает ноль рабочих пространств, и Yahont увидит только то рабочее пространство, в котором приложение было разработано.
5

Скопируйте токен бота уровня организации

Вернитесь на страницу OAuth & Permissions приложения и скопируйте Bot User OAuth Token. Токен начинается с xoxb-, как и обычный токен бота, но имеет права уровня организации.

Индексирование (Grid)

Настройка коннектора в Yahont такая же, как для одного рабочего пространства: вставьте токен бота и нажмите Connect. Yahont проверяет auth.test() для токена; если есть enterprise_id, он автоматически переключается в режим Grid:
  • Перечисляет рабочие пространства через auth.teams.list
  • Перечисляет каналы каждого рабочего пространства через conversations.list?team_id=... и удаляет дубликаты общих для организации каналов
  • Определяет URL каждого рабочего пространства через team.info для построения ссылок на каналы
  • Строит наборы адресов электронной почты пользователей по рабочим пространствам для ограничения прав публичных каналов

Поведение ограничения прав

Устранение неполадок (Grid)

Для перечисления рабочих пространств путь Grid требует team:read. Добавьте область в манифест, переустановите приложение в организацию и скопируйте новый токен бота в Yahont.
auth.teams.list возвращает только те рабочие пространства, в которые добавлен бот. Откройте панель администратора организации Grid → Apps → OnyxConnector и добавьте его в каждое нужное рабочее пространство, затем запустите новую попытку индексации.
Происходит только когда объединение пользователей по рабочим пространствам превышает 5000. Выше этого лимита Yahont помечает документ публичным, чтобы он оставался доступным; тот же запасной вариант применяется, когда ни одно из рабочих пространств канала нет в кэше Yahont (например, рабочее пространство, добавленное в организацию Grid после настройки коннектора). Повторное сохранение учётных данных перестраивает кэш рабочих пространств.