如何设计机器人从客户端应用程序传递令牌

问题描述 投票:2回答:1

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

  1. 如何将用户身份验证令牌传递给bot?此toke是使用用户凭据(usename +密码)生成的。在我的机器人代码中,我不能使用用户名/密码来生成令牌。我只需要从客户端应用程序传递它们。
  2. 如何将项目ID传递给机器人关于哪个用户提出问题?用户可能正在调用项目的名称,或者将从列表中选择项目。机器人应该足够聪明,可以根据项目ID更改答案。

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

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

botframework luis azure-bot-service
1个回答
0
投票

您的机器人需要很少的修改才能使用DirectLine API而不是网络聊天。 Directline API使您可以灵活地将自己的数据发送给Bot。 Activity.From中的保留属性很少,您可以从中读取数据。

  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"));

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

© www.soinside.com 2019 - 2024. All rights reserved.