我正在构建一个需要监听环境关键字的slackbot,但检查以确保特定用户编写了关键字。我正试图用这个来测试命令:
controller.hears(['texas'], 'ambient', function(bot, message) {
username = users.info.name;
bot.reply(message, username);
});
最终,我想运行条件逻辑以确保用户名与我希望机器人响应的用户匹配。但这不起作用;我使用API错了吗?如何检索用户名,如何检查以确保用户名正确?
答案 0 :(得分:5)
你会做这样的事情:
else
答案 1 :(得分:0)
users.list 此方法返回团队中所有用户的列表。这包括已删除/已停用的用户。此方法的网址为https://slack.com/api/users.list
的更多信息答案 2 :(得分: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