首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MS Teams Messaging Extension submitTask失败,出现"v3 agent not found“错误

MS Teams Messaging Extension submitTask失败,出现"v3 agent not found“错误
EN

Stack Overflow用户
提问于 2020-01-28 06:37:00
回答 2查看 606关注 0票数 0

我正在创建我的第一个Microsoft Teams扩展。现在,我只是试着让消息传递扩展的基本管道工作。我正在尝试建立一个扩展,允许用户在我的服务中搜索内容,然后在个人和团队聊天中返回一张卡片到他们的撰写窗口。

我尝试遵循使用App Studio创建消息传递扩展的基本指南( https://docs.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/create-messaging-extension )。我已经按照它的描述设置了一个bot,并且已经为bot (使用Ruby)构建了一个虚拟的echobot bot端点。我能够直接在团队客户端中与我的机器人“聊天”,并且它能够响应。

我的消息传递扩展定义了一个基于操作的命令,带有要呈现的web视图URL的taskInfo和设置为false的fetchTask。我为此编写了一个基本的静态HTML页面,并包含了teams js库。加载web视图,并调用teams js库初始化回调。我有一个submit按钮,它调用microsoftTeams.tasks.submitTask,据我所知,它应该用"composeExtension/submitAction“消息调用我的机器人,我会用卡片来响应它。(基于https://docs.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/action-commands/respond-to-task-module-submit?tabs=json )

我尝试通过"Upload a custom app“选项在团队中安装我的扩展,作为"for me and my team”和"for“,但仍然存在以下问题。

当我在团队客户端中从compose区域打开我的扩展,并在我的iframe内容中单击此提交按钮时,提交我得到一个“无法到达应用程序。请重试”错误显示。在开发控制台中,我可以看到对"invoke“http post的响应是{"errorCode":404,”message“:”未找到V3代理“。}

在此过程中,实际上没有流量发送到我的机器人。

我看到了这个更老的后Compose extension is throwing error : V3 agent not found版本。它提到的https://dev.botframework.com/bots/似乎已经过时了,但在Azure的“机器人通道注册”控制台中,我已经转到通道并添加了“微软团队”(我相信这是新的等价物)。

有没有人看到过这种情况,并弄清楚是怎么回事?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-28 23:27:14

希尔顿的答案是正确的。

我从机器人通道注册页面获取了订阅ID,而不是从Azure Active Directory ->应用注册页面获取应用ID,并在消息扩展清单中将其用作composeExtensions数组中的"botId“。修复后,我现在可以将消息提交到我的机器人后端。

票数 0
EN

Stack Overflow用户

发布于 2020-01-28 16:48:26

以下是用于Bot SDK V3的composeExtension/submitAction的示例代码。确保在taskInfo对象中传递机器人id和命令文本。

代码语言:javascript
复制
 case "composeExtension/submitAction":
                    string commandid = JsonConvert.DeserializeObject<Models.TaskModuleSubmitData<string>>(activityValue).commandId;
                    taskInfo = GetTaskInfo(commandid);
                    taskEnvelope = new Models.TaskEnvelope
                    {
                        Task = new Models.Task()
                        {
                            Type = Models.TaskType.Continue,
                            TaskInfo = taskInfo
                        }
                    };

                    return Request.CreateResponse(HttpStatusCode.OK, taskEnvelope);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59939884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档