J'ai lu le message ici pour inviter tous les membres de l'équipe sur un canal.
Sur le revers, je dois maintenant inviter un seul membre de l'équipe à tous mes canaux Slack.
Est-ce que quelqu'un sait comment je peux faire ça?
A trouvé ! Le code nécessite 2 paramètres. Vous avez besoin d'un utilisateur déjà invité sur tous les canaux dans lequel vous souhaitez inviter le nouveau membre de l'équipe (dans mon cas, tout collaborateur de mon équipe est invité à tous les canaux). Vous avez besoin de l'ID utilisateur du nouveau membre de l'équipe et du jeton de connexion de l'utilisateur précédent qui se trouve déjà dans tous les canaux. Vous pouvez obtenir l'ID utilisateur du nouveau membre de l'équipe via l'API slack, en utilisant Postman par exemple.
Une fois que vous avez ces paramètres, remplacez-les puis exécutez le code ci-dessous:
var express = require(‘express’);
var router = express.Router();
var rp = require(‘request-promise’);
/* GET home page. */
const ID_USER_TO_INVITE = “USER_ID_IN_SLACK_TEAM”
router.get(‘/’, function(req, res, next) {
let url = “https://slack.com/api/groups.list”
var options = {
method: ‘POST’,
headers: {‘Content-Type’: ‘application/x-www-form-urlencoded’},
uri: url,
form: {
token: TOKEN_USER_already_in_target_channels,
exclude_archived: true
},
json: true // Automatically stringifies the body to JSON
};
rp(options)
.then(parsedBody => {
console.log(“OK: “+parsedBody)
var promised_array = parsedBody.groups.map(item => {
console.log(item.id)
var url_invit = “https://slack.com/api/groups.invite”
var option_invit = {
method: ‘POST’,
headers: {‘Content-Type’: ‘application/x-www-form-urlencoded’},
uri: url_invit,
form: {
token: TOKEN_USER_already_in_target_channels,
user: ID_USER_TO_INVITE,
channel: item.id
}
}
return rp(option_invit)
})
Promise.all(promised_array).then(result => {
res.send(result)
})
})
.catch(err => {
console.log(“ERR: “+err)
})
// res.render(‘index’, { title: ‘Express’ });
});
module.exports = router;