microsoft-teams - Microsoft Teams:我加载的应用程序 (zip) 中的消息扩展失败:“无法访问应用程序”
问题描述
我正在使用 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 应用程序/机器人的新手......
请问有什么帮助吗?
谢谢,迭戈
解决方案
在尝试让示例机器人在 C# Hello World Teams 演示 ( https://github.com/OfficeDev/msteams-samples-hello-world-csharp ) 中工作时搜索类似的问题,这一点来自@Diego 的回复之一以上:
C。我在清单中的哪里设置密码?我看不到那个地方
让我意识到,尽管如上所述,我在 manifest.json 中输入了 botid,但必须在 appsettings.json 文件中输入 bot 密码。
推荐阅读
- javascript - 添加了关键道具 || 警告:列表中的每个孩子都应该有一个唯一的“关键”道具
- rabbitmq - 1 个队列上的 RabbitMQ 2 侦听器做一项工作(第一个和第二个侦听器做它)
- ios - ios sdk 操作指令ForLanguage:language unitSystem array empty
- javascript - Select2 用 JS 选择选项
- docker - Docker中的Nginx找不到文件
- mariadb - Mariadb 无法删除系统版本控制
- python - 我不断从某些论坛的抓取数据中收到错误
- javascript - 在 JavaScript 中将内容打印到控制台时,反引号和引号之间是否有很大区别?
- ssl - 在 AOSP 中更新受信任的 SSL 根证书
- python - python初学者(循环图)