我正在尝试使用Slack的users.info
API来检索用户信息,但我需要通过电子邮件找到用户,有没有办法做到这一点?
答案 0 :(得分:15)
目前,您只能通过ID查找users.info
的用户。
问题的另一种解决方案是拨打users.list并在profile.email
内为您的客户在您的客户端内进行过滤,以查找您要查找的电子邮件。
答案 1 :(得分:13)
是!
https://slack.com/api/users.lookupByEmail
使用此功能,我们可以在电子邮件ID可用的情况下找到用户。
答案 2 :(得分:3)
未记录的API可以完成这项工作: https://slack.com/api/auth.findUser?team=&安培;电子邮件=安培;标记= xoxp-XXXXXXXXX
答案 3 :(得分:1)
答案 4 :(得分:1)
您应该使用此范围 users:read.email , users:read 不再是电子邮件字段的足够范围。
选中此项可获得更多信息:https://api.slack.com/scopes/users:read.email
这对我来说是通缉的!
答案 5 :(得分:1)
这对我很有用。
我的设置:我是一家企业的一部分,因此legacy token
没有users:read.email
范围。
解决方案:我创建了一个具有users:read.email
范围和其他所需范围的应用。得到了我的管理员批准的应用程序,将该应用程序安装到我的工作区,检索了OAuth令牌,并将其与https://slack.com/api/users.lookupByEmail
一起使用。
答案 6 :(得分:0)
您可以从主调用方法中使用message.user获取用户ID
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));
});
});
}
引用链接:https://github.com/hassifow/Slack.API-User.info/blob/master/LambdaFunction.js