如何在微软Bot框架中获得当前上下文

本文关键字:上下文 框架 微软 Bot | 更新日期: 2023-09-27 18:04:54

我正在使用FormDialog构建一个表单,我正在传递BuildFormDelegate参数(静态方法)。在这个方法中,我需要上下文来获取用户数据。

用户数据作为上下文的一部分存储,使用扩展名:

public static async Task<string> GetAccessToken(this IBotContext context, string resourceId)

我这样调用context:

var calendarform = new FormDialog<CalendarInput>(new CalendarInput(), MakeCalendarForm, FormOptions.PromptInStart, result);
context.Call<CalendarInput>(calendarform, CalendarFormComplete);

我需要调用MakeCalendarForm中的GetAccessToken方法(不带任何参数)。我怎样才能做到这一点呢?

如何在微软Bot框架中获得当前上下文

您可以在调用表单之前调用GetAccessToken,并将结果令牌作为参数传递给您正在创建的FormDialog的CalendarInput状态。就像

var token = await context.GetAccessToken();
var calendarform = new FormDialog<CalendarInput>(new CalendarInput(token), MakeCalendarForm, FormOptions.PromptInStart, result);

然而,在表单的上下文中需要令牌听起来很奇怪。你想干什么?