【问题标题】:How to design bot with passing token from client app如何通过客户端应用程序传递令牌来设计机器人
【发布时间】:2017-10-30 11:33:34
【问题描述】:

我必须设计一个机器人来回答我的应用用户对他们的项目提出的问题。答案将是某些 API 的实现。我的机器人将用来提供答案的这些 API 由用户特定的身份验证令牌保护。到目前为止,我已经使用 Microsoft bot 框架和 LUIS 编写了一个机器人,它可以理解某些话语并可以通过调用项目 APIS 给出答案。我对如何做这些事情感到困惑:

  1. 如何将用户身份验证令牌传递给机器人?此令牌是使用用户凭据(用户名+密码)生成的。在我的机器人代码中,我不能使用用户名/密码来生成令牌。我只需要从客户端应用程序传递它们。

  2. 如何将项目 ID 传递给机器人以了解哪个用户提出问题?用户可能正在调用项目的名称,或者将从列表中选择项目。机器人应该足够智能,可以根据项目 ID 更改答案。

截至目前,我正在使用 LUIS 话语 + 实体组合处理第二部分。所以我的问题(话语是):“告诉我 {projectid} 中有什么新功能”,其中 projectid 是我的项目实体。

但对于第一个问题,我仍在寻找解决方案。请提出建议。

【问题讨论】:

  • 你是用node还是c# SDK来开发你的bot?
  • 另外,您是如何将您的机器人与您的应用程序集成的?直线、网络聊天?

标签: botframework azure-language-understanding azure-bot-service


【解决方案1】:

您只需对机器人进行少量修改即可使用 DirectLine API 而不是网络聊天。 Directline API 让您可以灵活地将自己的数据发送到 Bot。 Activity 中几乎没有保留属性。您可以从中读取数据。

  var userProperties = [];
        userProperties.push({ 
      projectId: 
        {Project_Id_Will_Be_Sent_Using_This}, 
      UserToken: 
        {User_Generated_Token} 
     });

  BotChat.App({     
    directLine: { secret: 'BOT-SECRET-KEY' },
    user: { id: '', name:'', properties:userProperties },
    bot: { id: 'YOUR-BOT-ID' },
    resize: 'detect',           
  }, document.getElementById("bot"));

如果您需要任何帮助,请回复。

【讨论】:

  • 我的是一个 c# 机器人。但我明白了这个想法。谢谢,会尝试像这样发送令牌。
  • 很高兴你明白了。谢谢
猜你喜欢
  • 2015-03-13
  • 2020-01-31
  • 2013-04-14
  • 1970-01-01
  • 2020-01-18
  • 1970-01-01
  • 1970-01-01
  • 2014-04-19
  • 2013-09-03
相关资源
最近更新 更多