如何使用users.info API通过电子邮件获得一个懒散的用户?

时间:2015-04-01 13:43:03

标签: slack-api

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

7 个答案:

答案 0 :(得分:15)

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

问题的另一种解决方案是拨打users.list并在profile.email内为您的客户在您的客户端内进行过滤,以查找您要查找的电子邮件。

答案 1 :(得分:13)

是!

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

使用此功能,我们可以在电子邮件ID可用的情况下找到用户。

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

答案 2 :(得分:3)

未记录的API可以完成这项工作: https://slack.com/api/auth.findUser?team=&安培;电子邮件=安培;标记= xoxp-XXXXXXXXX

答案 3 :(得分:1)

如果这是代表Slack斜杠命令执行的,则可以配置该命令以展开@username#channels等...

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

Slack app config: expand usernames and channels

答案 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