我正在从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();
});
我在这里想念什么?
答案 0 :(得分:2)
您可以在登录过程中捕获令牌。假设您已按照以下方式构建了登录过程,则用户登录的结果将从promptStep()
传递到loginStep()
。在我已分配给stepContext.result
的{{1}}中可用,并在活动中以文本形式返回给用户。
您可以在这里执行所需的其他逻辑。
tokenResponse
希望有帮助!
答案 1 :(得分:0)
BotFrameworkAdapter的GetUserTokenAsync可用于在以下任何瀑布步骤中获取令牌
StreamingResponseBody