我正在尝试链接任务模块,以通过单击按钮来依次显示自定义表单。我遵循了文档,但无法完全确定它是如何完成的。 我正在使用bot框架4.9 SDK 这是我的代码:
任务/提取功能
protected override async Task<TaskModuleResponse> OnTeamsTaskModuleFetchAsync(ITurnContext<IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken)
{
//*** Returning first custom form****//
return new TaskModuleResponse
{
Task = new TaskModuleContinueResponse
{
Type = "continue",
Value = await this.GetTaskInfo(turnContext,JsonConvert.DeserializeObject<TaskFetchJsonSerializer>(taskModuleRequest.Data.ToString()).data)
},
};
}
任务/提交:
protected override async Task<TaskModuleResponse> OnTeamsTaskModuleSubmitAsync(ITurnContext<IInvokeActivity> turnContext, TaskModuleRequest taskModuleRequest, CancellationToken cancellationToken)
{
//***sending second custom form as continue response***//
return new TaskModuleResponse
{
Task = new TaskModuleContinueResponse
{
Type = "continue",
Value = await this.GetTaskInfo(turnContext, TaskModuleIds.PRFPAddressForm)
},
}};
我能够呈现第一种形式,但是单击按钮后,第二种形式不会呈现。
答案 0 :(得分:0)
这是在任务模块中调用任务模块的示例代码
要从任务模块调用的HTML页面
<html>
<body>
<button type="button" id=""taskModuleChaining" onClick="OpenAnotherTaskModule()">Open Another Task Module</button>
</body>
<script>
microsoftTeams.initialize();
function OpenAnotherTaskModule(){
let taskInfo={
action:"newTaskModule"
}
taskInfo.height="medium";
taskInfo.width="medium";
microsoftTeams.tasks.submitTask(taskInfo);
return true;
}
</script>
</html>
C#中的邮政编码:
{
//serialize the task module submit data in a model to get the action name
string action =JsonConvert.DeserializeObject<Models.TaskModuleActionData<string>>(activityValue).Data;
if (action=="newTaskModule")
{
var response = new TaskModuleResponse
{
Task = new TaskModuleContinueResponse
{
Value = new TaskModuleTaskInfo()
{
url= "yourngrok.io",
Height = 200,
Width = 400,
Title = "Task Module",
},
},
};
return response;
}
}
您的机器人将收到一条调用消息。您可以在模型中解析任务模块发送给机器人的数据,然后创建任务模块响应并将其返回。