如何在 Microsoft Bot 框架中获取当前上下文
How to get current context in Microsoft Bot framework
我正在使用 FormDialog
构建一个表单,并向其传递一个 BuildFormDelegate
参数(静态方法)。在这个方法中,我需要上下文来获取用户数据。
用户数据存储为使用扩展编写的上下文的一部分:
public static async Task<string> GetAccessToken(this IBotContext context, string resourceId)
我调用表单上下文如下:
var calendarform = new FormDialog<CalendarInput>(new CalendarInput(), MakeCalendarForm, FormOptions.PromptInStart, result);
context.Call<CalendarInput>(calendarform, CalendarFormComplete);
我需要调用 MakeCalendarForm
中的 GetAccessToken
方法(不接受任何参数)。我怎样才能做到这一点?
您可以在调用表单之前调用 GetAccessToken,并将生成的令牌作为参数传递给 CalendarInput 状态,然后传递给正在创建的 FormDialog。像
var token = await context.GetAccessToken();
var calendarform = new FormDialog<CalendarInput>(new CalendarInput(token), MakeCalendarForm, FormOptions.PromptInStart, result);
但是,您在表单的上下文中需要令牌,这听起来很奇怪。你想做什么?
我正在使用 FormDialog
构建一个表单,并向其传递一个 BuildFormDelegate
参数(静态方法)。在这个方法中,我需要上下文来获取用户数据。
用户数据存储为使用扩展编写的上下文的一部分:
public static async Task<string> GetAccessToken(this IBotContext context, string resourceId)
我调用表单上下文如下:
var calendarform = new FormDialog<CalendarInput>(new CalendarInput(), MakeCalendarForm, FormOptions.PromptInStart, result);
context.Call<CalendarInput>(calendarform, CalendarFormComplete);
我需要调用 MakeCalendarForm
中的 GetAccessToken
方法(不接受任何参数)。我怎样才能做到这一点?
您可以在调用表单之前调用 GetAccessToken,并将生成的令牌作为参数传递给 CalendarInput 状态,然后传递给正在创建的 FormDialog。像
var token = await context.GetAccessToken();
var calendarform = new FormDialog<CalendarInput>(new CalendarInput(token), MakeCalendarForm, FormOptions.PromptInStart, result);
但是,您在表单的上下文中需要令牌,这听起来很奇怪。你想做什么?