【发布时间】:2019-12-03 22:41:36
【问题描述】:
我希望在我的机器人中打开一个连接到 Teams 频道的任务模块(弹出 - 带有音频/视频的 iframe)。我在遵循 GitHub 页面上提供的示例代码时遇到问题。
我已尝试按照示例并将其合并到我的代码中,但没有成功。
在我的 bot.cs 文件中,我正在创建调用类型的卡片操作:
card.Buttons.Add(new CardAction("invoke", TaskModuleUIConstants.YouTube.ButtonTitle, null,null,null,
new Teams.Samples.TaskModule.Web.Models.BotFrameworkCardValue<string>()
{
Data = TaskModuleUIConstants.YouTube.Id
}));
在我继承自 Controller 的 BotController.cs 中
[HttpPost]
public async Task PostAsync()
{
// Delegate the processing of the HTTP POST to the adapter.
// The adapter will invoke the bot.
await _adapter.ProcessAsync(Request, Response, _bot);
}
public async Task<HttpResponseMessage> Post([FromBody] Activity activity)
{
if (activity.Type == ActivityTypes.Invoke)
{
return HandleInvokeMessages(activity);
}
return new HttpResponseMessage(HttpStatusCode.Accepted);
}
private HttpResponseMessage HandleInvokeMessages (Activity activity)
{
var activityValue = activity.Value.ToString();
if (activity.Name == "task/fetch")
{
var action = Newtonsoft.Json.JsonConvert.DeserializeObject<Teams.Samples.TaskModule.Web.Models.BotFrameworkCardValue<string>>(activityValue);
Teams.Samples.TaskModule.Web.Models.TaskInfo taskInfo = GetTaskInfo(action.Data);
Teams.Samples.TaskModule.Web.Models.TaskEnvelope taskEnvelope = new Teams.Samples.TaskModule.Web.Models.TaskEnvelope
{
Task = new Teams.Samples.TaskModule.Web.Models.Task()
{
Type = Teams.Samples.TaskModule.Web.Models.TaskType.Continue,
TaskInfo = taskInfo
}
};
return msg;
}
return new HttpResponseMessage(HttpStatusCode.Accepted);
}
根据 GitHub 示例有更多代码,但我不会在此处粘贴。有人可以指出我正确的方向吗?
我已经到了显示弹出窗口的阶段,但内容和标题来自清单文件,而不是创建实际的 iframe,也没有呈现视频。我的目标是使用 iframe 容器在我的团队中渲染视频。
【问题讨论】:
-
能否确认您是否在示例代码中添加了this line?
-
@Gousia-MSFT 我没有这个文件。我应该创建它并添加到项目的顶层吗?
-
是的,请尝试添加它,如果这样可以解决您的问题,请告诉我。
-
你能解决这个问题吗?
-
嗨,我已经添加了提到的代码,但没有运气。我收到了很多错误:
The name 'Scripts' does not exist in the current contextThe name 'Styles' does not exist in the current context
标签: module task botframework bots microsoft-teams