J'essaie d'utiliser l'API users.info
de Slack pour récupérer les informations des utilisateurs, mais je dois rechercher des utilisateurs par courrier électronique. Y a-t-il un moyen de le faire?
Actuellement, vous ne pouvez rechercher que les utilisateurs avec users.info
par leur ID.
Une solution alternative à votre problème consisterait à appeler users.list et à filtrer votre client au moyen du profile.email
pour le courrier électronique que vous recherchez.
Oui!
https://slack.com/api/users.lookupByEmail
En utilisant cela, nous pouvons trouver un utilisateur si l'identifiant de messagerie est disponible.
Une API non documentée peut effectuer ce travail: https://slack.com/api/auth.findUser?team= & email = & token = xoxp-XXXXXXXXX
Vous devez utiliser cette étendue users: read.email , le users: read n’est plus une étendue suffisante pour le champ de courrier électronique.
Cochez cette case pour obtenir plus d'informations: https://api.slack.com/scopes/users:read.email
Cela a fonctionné pour moi comme voulu!
vous pouvez obtenir l'ID utilisateur avec message.user depuis la méthode d'appel principale
getUsername(userID).then((output) => { username = output.user.name });
function getUsername(userid){
return new Promise((resolve, reject) => {
//get token from https://api.slack.com/methods/users.info
options.uri = "https://slack.com/api/users.info?token=********&userid=" +userid+ "&pretty=";
rp(options).then(function (body) {
resolve(body);
console.log('Retrieved Info slack --- ' + JSON.stringify(body));
})
.catch(function (err) {
resolve(err);
console.log('aborted - slack ' + JSON.stringify(err));
});
});
}
lien de référence: https://github.com/hassifow/Slack.API-User.info/blob/master/LambdaFunction.js