Como convido todos os membros da equipe para um novo canal do Slack

42

É possível convidar todos os usuários (toda a equipe) para um novo canal do Slack? Parece que há limites para o número de pessoas que podem ser convidadas de uma só vez.

Abram
fonte
Relacionado. (Possível duplicado?) Convide vários usuários do Slack para um canal
ale
Sim, isso está relacionado, mas não é realmente uma duplicata. Essa pergunta não fornece uma solução para o meu problema.
Abram
1
Se você estiver usando uma solução para várias áreas de trabalho (Slack Enterprise Grid), sua lista de usuários poderá incluir pessoas fora da sua área de trabalho. Se o seu #canal for específico da área de trabalho, essas soluções potencialmente adicionam TODOS os usuários ao canal.
Choovermonium

Respostas:

3

Isso finalmente é possível com /invite @listname- quando você digita /invite @auto Suggest, você terá mais opções do que através do link "convidar pessoas".

DreamFlasher
fonte
42

Como a solução @Abram parou de funcionar, joguei um pouco. Este funciona parcialmente para mim agora, talvez você precise executá-lo algumas vezes

Suas instruções: navegue até o canal apropriado e cole este script (abaixo) no console do desenvolvedor Chrome / Firefox e pressione enter. Aguarde o script ser executado até que seja concluído. Pode levar tempo, pois há um limite para quantos usuários podem ser convidados ao mesmo tempo. O script será repetido até que todos os membros da equipe sejam convidados.

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
fonte
1
Funciona como um encanto, obrigado!
Pwdr
2
Obrigado por fornecer uma resposta funcional. Vou remover o meu, pois ele parou de funcionar.
Abram
1
Cuidado, isso também convidar bots no canal
Tib
Sim. Além disso, por alguma razão com grandes grupos que você precisa executá-lo duas vezes
John Alexis Guerra Gómez
20

Encontrei uma solução mais direta. Sem script, sem extensões:

  1. Digite o /whocomando em um canal em que você tem as (mais) pessoas que deseja adicionar.
  2. Copie a saída
  3. Cole-o no canal em que você deseja que essas pessoas sejam convidadas
  4. Pressione a Intro/Entertecla

O Slack perguntará o que fazer com todas as pessoas "que ainda não estão no canal". Se você pressionar o Invitebotão, todos serão convidados

jonayreyes
fonte
Na verdade, não testei essa resposta, mas, supondo que funcione, ela deve estar marcada como a solução correta. Eu designei isso como a solução, mas agradeceria a confirmação de outras pessoas de que a solução funciona. Obrigado!
Abram
Funcionou para mim. Colocou um post no novo canal com o @ de todos. Mas tudo bem para mim.
davepreston 6/03
1
No entanto, isso é limitado para mostrar os primeiros 99 membros do canal (que você pode copiar / colar).
Jan
4

Escreveu um script que também faz a mesma coisa.

Etapas:
1. Vá para a página do canal
2. Copie / cole o código no console do navegador

Todos os usuários serão adicionados.

//////////////////////////////
// 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
fonte