¿Cómo invito a todos los miembros del equipo a un nuevo canal de Slack?

42

¿Es posible invitar a todos los usuarios (todo el equipo) a un nuevo canal de Slack? Parece que hay límites para la cantidad de personas que pueden ser invitadas a la vez.

Abram
fuente
Relacionado. (¿Posible duplicado?) Invite a varios usuarios de Slack a un canal
ale
Sí, eso está relacionado pero no es realmente un duplicado. Esa pregunta no proporciona una solución a mi problema.
Abram
1
Si está utilizando una solución de espacio de trabajo múltiple (Slack Enterprise Grid), su lista de usuarios puede incluir personas fuera de su espacio de trabajo. Si su #canal es específico del espacio de trabajo, estas soluciones pueden agregar TODOS los usuarios al canal.
Choovermonium

Respuestas:

3

Finalmente, esto es posible con /invite @listname: cuando escribe /invite @auto sugerir le dará más opciones que a través del enlace "invitar a personas".

DreamFlasher
fuente
42

Como la solución @Abram dejó de funcionar, jugué un poco. Esto funciona parcialmente para mí ahora, aunque es posible que deba ejecutarlo un par de veces

Sus instrucciones: solo busque el canal apropiado y pegue este script (a continuación) en su consola de desarrollo de Chrome / Firefox y presione enter. Luego, espere a que se ejecute el script hasta que se complete. Puede llevar tiempo, ya que hay un límite para cuántos usuarios pueden ser invitados a la vez. El script se repetirá hasta que todos los miembros del equipo estén invitados.

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
fuente
1
Funciona como un encanto, gracias!
Pwdr
2
Gracias por proporcionar una respuesta funcional. Eliminaré el mío ya que ha dejado de funcionar.
Abram
1
Cuidado, esto también invita a bots en el canal
Tib
Si lo hace Además, por alguna razón con grandes grupos, debes ejecutarlo dos veces
John Alexis Guerra Gómez
20

Encontré una solución más sencilla. Sin script, sin extensiones:

  1. Escriba el /whocomando en un canal donde tenga la (mayoría) de las personas que desea agregar.
  2. Copia la salida
  3. Péguelo en el canal donde desea que se invite a esas personas
  4. Presione la Intro/Entertecla

Slack te preguntará qué hacer con todas esas personas "que aún no están en el canal". Si presiona el Invitebotón, invitará a todos

jonayreyes
fuente
En realidad no probé esta respuesta, pero suponiendo que funcione, debería marcarse como la solución correcta. He asignado esto como la solución, pero agradecería la confirmación de otros de que la solución funciona. ¡Gracias!
Abram
A mi me funciono. Puso una publicación en el nuevo canal con todos @ en él. Pero eso está bien para mí.
davepreston
1
Sin embargo, esto se limita a mostrar los primeros 99 miembros del canal (que puede copiar / pegar).
enero
4

Escribió un guión que también hace lo mismo.

Pasos:
1. Vaya a la página del canal
2. Copie / pegue el código en la consola del navegador

Se agregarán todos los usuarios.

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