【发布时间】:2019-09-03 15:16:53
【问题描述】:
我正在使用 Microsoft TEAMS 应用程序,我需要向我的应用程序添加调用。我的问题:
-------------- 问题 1 --------------
我正在尝试使用 TEAMS 应用程序中的 HelloWorld Web 应用程序 (HW),但出现“无法访问应用程序”消息。
我的硬件已编译(Visual Studio 2017 中的 Microsoft.Teams.Samples.HelloWorld)在本地运行(浏览器在 http://localhost:3333/ 中打开)
使用 ngrok 我可以远程访问 (https://5d4c6462.ngrok.io) ngrok http 3333 -host-header=localhost:3333
此硬件客户端生成一个包含 2 个 .png 文件和 manifest.json 文件的 .zip 文件
然后在我的 TEAMS 应用程序(左侧面板)中,我转到应用程序-“上传自定义应用程序”,浏览并获取该 .zip。我的用户可以看到我的硬件
在“团队”选项卡中,我选择了一个团队 (MyTeam),在“管理团队”-应用程序中,我安装了硬件应用程序(“更多应用程序”按钮),但对“机器人”/“选项卡”和“不执行任何操作”消息传递选项(所有选项都有一个似乎什么都不做的“设置”按钮)
之后,在 MyTeam 中,我可以在编写 @hello 时看到硬件应用程序,并且可以使用来自 composeExtensions (manifest) 的命令
但是当我输入文本时,会显示“无法访问应用程序”
我认为我的问题出在清单文件中,但我不知道在哪里...与 ID 相关的任何内容?真的没有消息扩展 URL 可以访问我的应用程序...
在我的可视化项目“装配信息”中,我有一个 GUID 值:“f543a88...”
我在清单中使用了这个值,用于“id”,以及“bots”和“composeExtensions”中的“botId” 清单文件中的其余值是默认值
-------------- 问题 2 --------------
我有一些概念没有真正理解,即使在阅读了应用程序机器人文档之后...
- 如果我有一个应用程序(例如以前的 Hello World),我可以从 Teams 应用程序上传它(如上所述)。它可以向我的应用程序发送消息(或者它会在找到 Web 应用程序时发送)
- 但是我如何使用正在运行的机器人来做到这一点?例如来自 .NET 框架示例(例如 csharp_dotnetcore 解决方案中的 EchoBot 项目)?我的意思是该项目没有要上传的清单,其中命令是可见的 TEAMS 来显示...我必须从 TEAMS 创建一个应用程序并在创建过程中加载这个机器人吗?
-
在硬件示例应用程序中,我有一个 MessagesController : ApiController 来接收消息,我可以检查它是否是一个消息扩展
public async Task<HttpResponseMessage> Post([FromBody] Activity activity) { using (var connector = new ConnectorClient(new Uri(activity.ServiceUrl))) { if (activity.IsComposeExtensionQuery())
但是我可以在 BOT 中检查吗? AsFarAsIKnow,ActivityHandler用于处理接收到的消息,其方法(OnMessageActivityAsync, ...)
在像硬件示例这样的应用程序中,是否可以在收到文本时返回比文本更复杂的内容?例如,一张卡片
在应用程序清单文件中,“composeExtensions”有“命令”,其中需要参数(可以使用不同的类型:文本、日期等)但是是否可以创建不带参数的命令?我的意思是也许我只是想向我的应用程序发送一个命令
对不起,如果我说什么毫无意义的话,我真的是 TEAMS 应用程序/机器人的新手......
有什么帮助吗?
谢谢, 迭戈
【问题讨论】:
-
您找到问题所在了吗?我正在尝试同样的事情,它表明该应用程序无法访问。 @diego
标签: microsoft-teams