Jak zaprosić wszystkich członków zespołu na nowy kanał Slack

42

Czy można zaprosić wszystkich użytkowników (cały zespół) do nowego kanału Slack? Wydaje się, że istnieją ograniczenia dotyczące liczby osób, które można zaprosić jednocześnie.

Abram
źródło
Związane z. (Możliwy duplikat?) Zaproś wielu użytkowników Slacka na kanał
ale
Tak, to jest powiązane, ale tak naprawdę nie jest duplikatem. To pytanie nie rozwiązuje mojego problemu.
Abram
1
Jeśli korzystasz z rozwiązania do obsługi wielu obszarów roboczych (Slack Enterprise Grid), na liście użytkowników mogą znajdować się osoby spoza obszaru roboczego. Jeśli Twój kanał # jest specyficzny dla obszaru roboczego, te rozwiązania potencjalnie dodają WSZYSTKICH użytkowników do kanału.
Choovermonium

Odpowiedzi:

3

Jest to w końcu możliwe dzięki /invite @listname- po wpisaniu /invite @auto sugestia da ci więcej opcji niż poprzez link „zaproś ludzi”.

DreamFlasher
źródło
42

Ponieważ rozwiązanie @Abram przestało działać, grałem trochę. Ten działa teraz dla mnie częściowo, być może jednak trzeba go uruchomić kilka razy

Jego instrukcje: po prostu przejdź do odpowiedniego kanału i wklej ten skrypt (poniżej) do konsoli programisty Chrome / Firefox i naciśnij klawisz Enter. Następnie poczekaj na uruchomienie skryptu, aż się zakończy. Może to zająć trochę czasu, ponieważ istnieje ograniczenie liczby zaproszonych użytkowników jednocześnie. Skrypt będzie się powtarzał, dopóki wszyscy członkowie zespołu nie zostaną zaproszeni.

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();  
John Alexis Guerra Gómez
źródło
1
Działa jak urok, dzięki!
Pwdr
2
Dziękujemy za udzielenie działającej odpowiedzi. Usunę mój, ponieważ przestał działać.
Abram
1
Obchodzi to również zapraszanie botów na kanale
Tib
Tak. Ponadto, z jakiegoś powodu w dużych grupach, musisz uruchomić go dwa razy
John Alexis Guerra Gómez
19

Znaleziono bardziej proste rozwiązanie. Bez skryptu, bez rozszerzeń:

  1. Wpisz /whopolecenie na kanale, na którym masz (większość) osób, które chcesz dodać.
  2. Skopiuj dane wyjściowe
  3. Wklej go na kanale, na który chcesz zaprosić tych ludzi
  4. Naciśnij Intro/Enterklawisz

Slack zapyta cię, co zrobić z tymi wszystkimi ludźmi, „którzy jeszcze nie są na kanale”. Po naciśnięciu Inviteprzycisku wszyscy zostaną zaproszeni

jonayreyes
źródło
Właściwie nie przetestowałem tej odpowiedzi, ale zakładając, że zadziała, powinna być oznaczona jako właściwe rozwiązanie. Przypisałem to jako rozwiązanie, ale doceniłbym potwierdzenie od innych, że rozwiązanie działa. Dzięki!
Abram
To zadziałało dla mnie. Umieścił post na nowym kanale, w którym wszyscy byli @. Ale to w porządku dla mnie.
davepreston
1
Jest to jednak ograniczone, aby pokazać pierwszych 99 członków kanału (które można skopiować / wkleić).
Jan
4

Napisałem skrypt, który robi to samo.

Kroki:
1. Przejdź do strony kanału
2. Skopiuj / wklej kod do konsoli przeglądarki

Wszyscy użytkownicy zostaną dodani.

//////////////////////////////
// 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
źródło