Node.js 如何使用Slack web api检查用户是否存在

Node.js 如何使用Slack web api检查用户是否存在,node.js,slack,slack-api,Node.js,Slack,Slack Api,我刚刚开始学习创建Slack应用程序,我正在尝试验证为我的命令传递的参数是否为有效用户。我试过使用val.ok并用try-catch来包围它,但如果找不到它们,我似乎不知道如何处理 const { WebClient } = require('@slack/web-api'); const web = new WebClient(TOKEN); exports.myCommand = (req, res) => { let userId = req.body.text;

我刚刚开始学习创建Slack应用程序,我正在尝试验证为我的命令传递的参数是否为有效用户。我试过使用val.ok并用try-catch来包围它,但如果找不到它们,我似乎不知道如何处理

const { WebClient } = require('@slack/web-api');
const web = new WebClient(TOKEN);

exports.myCommand = (req, res) => {
    let userId = req.body.text;
    let message = {"text": ""};

    res.status(200).send("Verifying user...");

    (async () => {
        let val = await web.users.info({user: userId});
        if (!val.ok) {
            message.text = "Error: "+ user +" not found";
        } else {
            message.text = "User: " + user;
        }
    })();
};

我这样做是对的,还是有更好的选择?

我想知道你想做什么。默认情况下,发送斜杠命令的每个用户都将始终是用户列表的一部分。因此这是多余的。命令本身需要另一个用户作为参数。例如:“/myCommand@user”如果不清楚,很抱歉。通常,如果用户不存在,API将发送一个包含属性
错误
的响应,其中包含文本
user\u not\u found
。但是,如果您从slash命令响应中的提及中获取用户,则它只能包含来自该工作区的用户。所以我还是不知道你想做什么?你能解释一下你的目标是什么吗?还有一个提示:如果你在Slack
text
中为你的斜杠命令打开了escape,它将包含用户及其ID,因此@user将被翻译为“你是对的,我不知道为什么我不这么认为。”。我无缘无故地把事情复杂化了。我希望该命令将用户与其他信息一起添加到文本文件中,因此我希望验证它们是否存在。