1

我正在构建一个需要监听环境关键字但检查以确保特定用户编写关键字的 slackbot。我现在正在尝试使用以下命令测试该命令:

controller.hears(['texas'], 'ambient', function(bot, message) {
  username = users.info.name;
  bot.reply(message, username);
});

最终,我想运行条件逻辑以确保用户名与我希望机器人响应的用户匹配。但这不起作用;我是否使用错误的 API?如何检索用户名,以及如何检查以确保它是正确的用户?

4

3 回答 3

5

你会做这样的事情:

controller.hears(['texas'], 'ambient', function(bot, message) {
  bot.api.users.info({user: message.user}, function(err, info){
    //check if it's the right user using info.user.name or info.user.id
    bot.reply(message, info.user.name)
  })
})
于 2016-06-05T13:41:13.263 回答
0

users.list此方法返回团队中所有用户的列表。这包括已删除/停用的用户。此方法具有 URL https://slack.com/api/users.list

有关机器人用户的更多信息

于 2016-06-04T02:42:50.230 回答
0

下面帮助我获取给定用户标识的用户名,您可以从主调用方法获取带有 message.user 的用户标识

 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:43:51.313 回答