Как пригласить всех участников команды на новый канал Slack

42

Можно ли пригласить всех пользователей (всю команду) на новый канал Slack? Кажется, есть ограничения на количество людей, которые могут быть приглашены одновременно.

Аврам
источник
Связанный. (Возможно, дубликат?) Пригласите нескольких пользователей Slack на канал
ale
Да, это связано, но на самом деле не дубликат. Этот вопрос не дает решения моей проблемы.
Аврам
1
Если вы используете решение для нескольких рабочих пространств (Slack Enterprise Grid), в ваш список пользователей могут входить люди, не входящие в ваше рабочее пространство. Если ваш #channel зависит от рабочей области, эти решения потенциально могут добавить ВСЕХ пользователей в канал.
Choovermonium

Ответы:

3

Это, наконец, возможно с помощью /invite @listname- при вводе /invite @автоматического предложения вы получите больше возможностей, чем по ссылке «пригласить людей».

DreamFlasher
источник
42

Поскольку решение @Abram перестало работать, я немного поиграл. Это работает частично для меня сейчас, возможно, вам придется запустить его пару раз, хотя

Его инструкции: просто перейдите к соответствующему каналу и вставьте этот скрипт (ниже) в консоль разработчика Chrome / Firefox и нажмите Enter. Затем дождитесь запуска сценария, пока он не завершится. Это может занять некоторое время, поскольку существует ограничение на количество пользователей, которые могут быть приглашены одновременно. Сценарий будет повторяться до тех пор, пока все члены команды не будут приглашены.

var foundAny=false;
function selectAllByLetter(remainingLetters) {
  console.log(remainingLetters)
  var letter = remainingLetters.pop();
  $("#channel_invite_filter").val(letter).trigger("input");
  setTimeout(function() {
    $(".channel_invite_member:not(hidden)").each(function(i, obj) {
        foundAny=true;
        this.click();
    });
    if (remainingLetters.length) {
      selectAllByLetter(remainingLetters);
    } else {
      setTimeout(function() {
        console.log("Inviting them all!")
        $('.invite_go').click()
      },400)     
    }
  },300);
}

function inviteAllUsers() {      
  foundAny=false;     
  setTimeout(function () {    
      setTimeout(function() {
        $('#channel_actions_toggle').click();
      },100)
      setTimeout(function() {
        $('#channel_invite_item').click();
      },200)
      //Enter each letter to trigger searches
      var remainingLetters = ["a","b","c","d","e","f","g","h","i","j","v","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"];
      selectAllByLetter(remainingLetters);
      if (foundAny) {
        inviteAllUsers();
      }
   }, 4000);
}
inviteAllUsers();  
Джон Алексис Герра Гомес
источник
1
Работает как шарм, спасибо!
Pwdr
2
Спасибо за предоставленный рабочий ответ. Я удалю мой, так как он перестал работать.
Абрам
1
Осторожно, это также приглашает ботов в канал
Tib
Да, это так. Кроме того, по некоторым причинам с большими группами вам нужно запустить его дважды
Джон Алексис Гуэрра Гомес
20

Нашел более простое решение. Нет сценария, нет расширений:

  1. Введите /whoкоманду на канале, где у вас есть (большинство) людей, которых вы хотите добавить.
  2. Скопируйте вывод
  3. Вставьте его в канал, на который вы хотите, чтобы эти люди были приглашены
  4. Нажмите Intro/Enterклавишу

Slack спросит вас, что делать со всеми теми людьми, «которых еще нет на канале». Если вы Inviteнажмете кнопку, вы будете приглашены все

jonayreyes
источник
Я на самом деле не проверял этот ответ, но предполагая, что он работает, он должен быть помечен как правильное решение. Я назначил это как решение, но был бы признателен за подтверждение от других, что решение работает. Благодарность!
Аврам
Это сработало для меня. Он поместил сообщение на новом канале, в котором все @. Но это нормально для меня.
Дэйвпрестон
1
Это, однако, ограничено, чтобы показать первые 99 членов канала (которые вы можете скопировать / вставить).
Jan
4

Написал скрипт, который тоже делает то же самое.

Шаги:
1. Перейти на страницу канала
2. Скопировать / вставить код в консоль браузера

Все пользователи будут добавлены.

//////////////////////////////
// AFTER.JS Module
//////////////////////////////

var After = function () {
    this._totalTime = 0;
};

// It's prototype
var protoAfter = {
    // After (time) seconds, run a handler
    after: function (time, handler) {
        this._totalTime += time;

        setTimeout(function () {
            handler();
        }, this._totalTime * 1000);

        return this;
    }
};

$.extend(After.prototype, protoAfter);

//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ End of After section

var first = "a",
    last = "z";

var after = new After();
after.charIndex = first.charCodeAt(0);

for (var i = first.charCodeAt(0); i <= last.charCodeAt(0); i++) {

    after
        .after(0.3, function () {
            $('#channel_actions_toggle').click();
        })

        .after(0.3, function () {
            $('#channel_invite_item').click();
        })

        .after(0.3, function () {
            $("#channel_invite_filter").focus();
            $("#channel_invite_filter").val(String.fromCharCode(after.charIndex)); // type in character
            $("#channel_invite_filter").trigger("input");
            after.charIndex++;
        })

        .after(0.5, function () {
            $(".add_icon").click();
        })

        .after(0.5, function () {
            $(".invite_go").click();
        })

        .after(0.5, function () {
            $("#fs_modal_close_btn").click();
        })
}
yehyaawad
источник