2016-12-01 2 views
0

У меня есть приложение, в котором мне нужно создать многопартийные группы im в slack, а затем предоставить URL-адрес пользователю для доступа к группе.Создайте многопартийный канал от имени другого пользователя (slack API)

Во-первых, пользователь A в данной организации-клиенте A_org регистрирует свою лицензию на приложение с использованием слабины Oauth2.

Позже пользователь B (не пользователь, который первоначально зарегистрировал приложение или создал токен аутентификации), должен получить доступ к многоканальному каналу обмена сообщениями группы.

В настоящее время я создаю группу, так:

const response = await callSlackApiMethod('mpim.open', { 
    token: access_token, // <-- access token of authorizing user (user A) 
    users: slackIds.join(',') // <-- group of users including B, not including A 
}); 

где callSlackApiMethod просто GET s метод REST из слабины с предоставленным Params.

Проблема:

Группа вернулась в response всегда включает slackId от пользователя A. Есть ли способ создать канал mpim для пользователя B (и других пользователей), не включая пользователя A, и без необходимости отдельно авторизировать каждого пользователя?

Заранее благодарен!

ответ

1

Нет, это невозможно с mpim.open. Использование токена пользователя A для создания канала mpim - это то же самое, что и пользователь A, приглашающий других пользователей в групповой разговор.

Вместо этого вы можете создать новый частный канал с groups.create и пригласить пользователя B к нему. Он также будет включать пользователя A сначала, но пользователь A может покинуть частный канал, чтобы остался только пользователь B (и любые другие приглашенные пользователи).

Обратите внимание, что, оставив частный канал с пользователем A, вы потеряете контроль над ним в своем скрипте. Вы не сможете повторно войти или управлять им каким-либо образом. Обходной путь, который я использовал, состоит в том, чтобы иметь учетную запись администратора (например, slackadmin), которая может оставаться в частном канале, не появляясь как «шпионский пользователь».

+0

Спасибо за вашу помощь, использование учетной записи администратора может быть лучшим вариантом. –

Смежные вопросы