在Microsoft Teams Bot中进行身份验证后如何获取用户访问令牌?

时间:2020-03-30 05:26:34

标签: node.js botframework microsoft-teams

我正在从bot开发我的第一个Microsoft Teams

我希望用户在机器人中输入命令,机器人应将请求发送到我的外部Web服务器,并将结果显示为自适应卡。我可以使用外部服务器对机器人进行身份验证。机器人在身份验证后显示用户访问令牌。完美!

如何从我的机器人代码或网络服务器中获取用户的访问令牌,以处理来自机器人的传入请求。这是我的机器人代码的样子。

this.onMessage(async (context, next) => {

     //I need a way to get the user's access token here 
     //or a way to fetch the access token from my web server 
     //based on some id in the context.
     const response = await myWebService.getData(context);

     // Run the Dialog with the new message Activity.
     await this.dialog.run(context, this.dialogState);
     await next();
});

我在这里想念什么?

2 个答案:

答案 0 :(得分:2)

您可以在登录过程中捕获令牌。假设您已按照以下方式构建了登录过程,则用户登录的结果将从promptStep()传递到loginStep()。在我已分配给stepContext.result的{​​{1}}中可用,并在活动中以文本形式返回给用户。

您可以在这里执行所需的其他逻辑。

tokenResponse

希望有帮助!

答案 1 :(得分:0)

BotFrameworkAdapter的GetUserTokenAsync可用于在以下任何瀑布步骤中获取令牌

StreamingResponseBody