22

我正在尝试使用 Slack 的users.infoAPI 来检索用户信息,但我需要通过电子邮件查找用户,有没有办法做到这一点?

4

7 回答 7

22

是的!

https://slack.com/api/users.lookupByEmail

如果电子邮件 ID 可用,我们可以使用它找到用户。

更多:https ://api.slack.com/methods/users.lookupByEmail

于 2018-01-10T13:19:47.057 回答
16

目前您只能users.info通过 ID 查找用户。

您的问题的另一种解决方案是调用users.list并在您的客户端中按profile.email您要查找的任何电子邮件进行过滤。

于 2015-04-06T17:33:02.117 回答
8

未记录的 API 可以完成这项工作: https ://slack.com/api/auth.findUser?team= &email=&token=xoxp-XXXXXXXXX

于 2017-08-17T06:59:03.090 回答
4

如果这是代表 Slack 斜杠命令完成的,则可以将命令配置为展开@username,#channels等...

这可以在 Slack 应用程序的命令部分下完成。请参阅以下屏幕截图:

Slack 应用配置:扩展用户名和频道

于 2018-07-22T22:03:06.107 回答
2

您应该使用此范围users:read.emailusers:read不再是电子邮件字段的足够范围。

检查此以获取更多信息:https ://api.slack.com/scopes/users:read.email

这对我有用!

于 2019-01-21T02:04:52.367 回答
2

这对我很有用。我的设置:我是企业的一部分,因此legacy token没有users:read.email范围。

解决方案:我创建了一个应用程序,其中包含users:read.email所需的范围和其他范围。从我的管理员那里获得应用程序的批准,将应用程序安装到我的工作区,检索 OAuth 令牌,将其与https://slack.com/api/users.lookupByEmail.

于 2019-08-01T22:11:25.313 回答
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

于 2018-07-16T03:51:13.290 回答