Microsoft Bot Framework (SDK4 Nodejs):如何让机器人使用 api 执行诸如客户身份验证之类的操作?

迪维扬什·巴多尼亚

我希望 Microsoft Bot Framework Chat Bot 使用 freshservice api 验证我的客户。

我已经向用户询问了他们的用户名和密码(对应于:company-domain.freshservice.com)并使用状态访问器存储了客户详细信息(如 Microsoft Bot Framework 的 SDK4 提供的文档所示)。现在获得详细信息后,我希望机器人向 freshservice api 发送一个 http 请求并验证客户。并在聊天窗口(当前为 Bot Framework Emulator)显示机器人的身份验证结果。请帮助,因为我无法找到一种方法来做到这一点。

理查德森

Freshservice API是围绕 CURL 构建的,因此Node.js 中如何使用它有点困难。我已经采用了第一个示例并为您转换了它:

从:

curl -u [email protected]:test -H "Content-Type: application/json" -X GET https://domain.freshservice.com/helpdesk/tickets.json

至:

// Convert to base64
const loginInfo = Buffer.from(`${ username }:${ password }`).toString('base64');
const response = await axios.get(`https://<yourDomain>.freshservice.com/helpdesk/tickets.json`, {
    headers: {
        'Content-Type': 'application/json',
        Authorization: `Basic ${ loginInfo }`
    }
});
await context.sendActivity(JSON.stringify(response.data, null, 2));

这将产生完整的 JSON 响应:

在此处输入图片说明

您选择如何显示这取决于您。


笔记:

  • 您需要安装 axios(或其他一些可以发出 GET 请求的服务) npm i axios
  • Freshservice 支持 OAuthBotFramework 也支持
    • 我强烈建议走这条路线,因为这意味着您不必弄清楚存储和加密用户登录信息。这对您来说明显更安全,也更少头痛。基本上,它不会存储用户/密码,而是会向用户显示登录提示。记录它时,它会返回一个令牌,您将存储该令牌并使用它来发出请求。现在,如果攻击者想要窃取用户名和密码,他们唯一的途径就是使用 Freshservice API。如果您自己存储用户/密码,他们还可以尝试攻击您的机器人客户端、机器人对话历史记录和您的机器人存储。
    • 要开始使用,请阅读向机器人添加身份验证并使用机器人身份验证示例作为指南。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章