如何在 Microsoft Teams 中创建应用?
创建和分发基于 Microsoft Teams 平台构建的应用,涉及确定要构建的内容,构建 Web 服务、创建应用程序包以及将此程序包分发给目标最终用户。 组织管理员将决定谁可以访问和安装应用程序,而且用户可以在任何特定的上下文中安装应用程序。 下面我们来详细了解各个步骤。
设计应用
为 Microsoft Teams 创建成功的应用程序中最重要的步骤,是选择正确的组合扩展点和 UI 元素以充分利用。 应该花费大量时间来了解要通过应用程序解决的问题,并通过用户可以在Microsoft Teams 客户端中与应用程序交互的各种方式来映射解决方案。 不要低估上下文和作用域的重要性! 对一聊天中正常运行的对话机器人在群聊或频道对话中可能不起作用。
下面概括了可用功能,以及最适合的一些场景。 可以通过多种方式完成许多任务:为作业选择合适的工具将提供更好的用户体验。
- 消息传递扩展 - 搜索命令可用于允许用户搜索外部系统,然后在 Teams 中共享此搜索的结果。 借助卡片和卡片操作,可以完全格式化此搜索的结果,并允许用户在不离开 Microsoft Teams 客户端的情况下采取与结果相关的操作。
- 消息传递扩展 - 操作命令非常适合在一个位置收集来自用户的信息,然后将此信息发送到 Web 服务。 这些操作命令非常适合创建任何记录,或作为单独事务的组成部分收集多条信息。
- 选项卡 - 组和频道提供了可供多人进行协作的共享画布。 如果拥有适用于一群人的信息或服务,则应将其添加到应用中。 请记住,每个人都在同一画布上工作,页面为无状态,并且应作为单页面应用运行。
- 选项卡- 个人应用程序可提供类似网页的个人体验。 通常,最适合“中心”场景- “分配给我的项目”或“我创建的内容”。 它们对于帮助或关于页面之类的静态内容也很有用。
- 对话机器人 - 组和频道有助于将附加信息添加至适合所有人(或至少大多数人)的对话。 可用于主动将相关信息添加到对话,或响应用户请求(“嗨,自动程序,创建一个投票,了解我们共进午餐的地方”)。 通常,不应将其用于多回合对话 - 使用任务模块来收集信息或将对话移至一对一聊天,然后将结果插入回原始对话。
- 对话式机器人 - 个人应用可以实现令人难以置信的多样化工作负载。 问答机器人、在其他系统中启动工作流的机器人、讲笑话的机器人和记笔记的机器人只是其中的几个例子。 切记考虑基于对话的界面是否能够最佳呈现功能。
- Webhook 和连接器 可用于允许用户订阅来自外部系统的通知消息的通道。
- 会议应用可实现协作、合作、明智的沟通和共享反馈。 会议应用可以为会议生命周期的每个阶段提供用户体验。 会议生命周期包括会议前、会议内和会议后应用体验,具体取决于与会者的状态。 在本模块中,你将了解如何创建要在 Microsoft Teams 会议中使用的自定义应用。
最优秀的应用通常会利用多个扩展点。 例如,假设组织希望允许人们提交改进建议。 可创建含有消息传递扩展搜索命令的应用以查找和共享现有建议,添加操作命令以允许用户创建和更新建议,创建频道选项卡使团队查看分配给他们的所有建议,创建个人选项卡使用户可查看在过去提交的所有建议。 添加由自然语言处理和机器学习提供支持的对话机器人,使用户可以根据建议进行复杂的查询,可获得功能齐全,全面集成的 Teams 应用程序!
准备开发环境
至少,需要访问已启用上传自定义应用程序的 Microsoft 365 组织。 如果没有,则可以通过注册 Microsoft 365 开发人员计划来获取开发组织。 还需要一种方法来部署和托管 Web 服务。 对于本地开发,可使用 ngrok 等隧道服务,但对于生产,需要将服务部署至 Azure 等云服务提供商。 可以使用本地基础结构托管 Web 服务,但必须可公开访问(不在防火墙后面)。
选择开发环境
构建 Microsoft Teams 应用程序时,开发人员有多种选择。
一旦开发人员解答了有关所构建 Microsoft Teams 应用类型的一些问题,基于社区的 Yeoman Generator for Microsoft Teams (也称为"yo teams") 将为项目搭建基架。 可以在此处了解有关 Microsoft Teams Yeoman 生成器的更多信息:创建第一个 Microsoft Teams 应用。
借助 Microsoft Teams 工具包,可以直接在 Visual Studio Code 环境中创建自定义 Teams 应用程序。 此工具包将引导你完成整个过程,并提供构建、调试和启动 Teams 应用所需的一切资源。 可在此处了解有关适用于 Visual Studio 和 Visual Studio Code 的 Microsoft Teams 工具包:使用 Microsoft Teams 工具包构建应用。
构建 Web 服务
确定用户与应用进行交互的方式后,可创建 web 服务为其提供支持。 根据所创建的内容,Teams 提供了各种 SDK、模板、代码示例和生成器来帮助你入门,包括:
- 适用于消息传递扩展和对话机器人的 Bot Framework SDK
- 适用于选项卡和其他内容页面的 Teams JavaScript 客户端 SDK
- 适用于在 Node.js 中创建程序的 Yeoman 生成器
- 一组适用于 web 内容页面、Fluent UI 的开源控件
- 准备用于生产的应用模板
有关可帮助入门的工具和示例的完整列表,请参阅完整文档。
请记住,需要采用某种方式托管 Web 服务,使其可以通过 Internet(通常在 Microsoft Azure 等云服务提供商中)公开访问,并通过 HTTPS 提供内容。
创建应用包
Web 服务启动并运行后,需要创建一个可以在 Microsoft Teams 中分发和安装的应用程序包。 应用包包含两个图标和一个描述应用元数据的 JSON 清单文件、应用使用的扩展点以及用于支持这些扩展点的服务指针。
创建应用包时,可以选择手动创建,或使用 App Studio,它是 Teams 中的一个应用,可帮助你创建 Teams 应用。 App Studio 将指导您创建应用清单,并可以帮助你使用 Bot Framework 注册机器人。 它还包含一个卡片设计器,有助于直观地创建卡片和卡片动作,并在 Teams 中向自己发送示例。
分发应用
根据目标受众,可以使用三种方式来分发自定义 Microsoft Teams 应用程序。
- 直接共享应用包。 可选择直接与用户共享应用包。 如果应用程序仅面向限定的受众群体(只有几个团队或个人),并在应用程序的开发和测试过程中很有用。
- 将应用发布到组织应用目录。 如果应用程序适用于特定组织(或者已自定义应用程序以满足组织的特定需求),则租户管理员可以将应用程序上传到组织的应用程序目录。 此选项可使应用供组织中的任何人进行安装(但不自动安装)。
- 将应用发布到公共应用商店。 如果应用适用于世界各地的 Teams 用户,可以提交应用以在公共应用商店中发布。 需要经过严格的审查程序,因此请确保一丝不苟、注重细节。
分发应用程序时,不仅需要考虑所需的受众,还需要考虑与之共享应用的组织中的现有 IT 策略。 每个组织都可以完全控制确定哪些应用程序将被上传到组织应用程序目录,以及哪些应用程序可从应用程序商店安装。
安装应用
在 Microsoft Teams 中安装应用特定于上下文。 安装应用的个人应用部分(适用于单个用户的范围),不会在任何特定团队中安装应用程序,反之亦然。 在特定团队中安装应用程序不会在任何其他团队中安装应用程序。 这表示永远都不应该假设应用程序已在所有可能的上下文中安装 - 可能并没有安装。 组织的 IT 管理员可以完全控制谁可以在哪个上下文中安装哪些应用程序,因此,也不应该假定当前正在与之交互的用户有权在其他上下文中安装应用程序。
无论好坏,都有严格限制直接从应用程序包安装应用的的趋势,所以如果决定通过共享应用程序包直接分发应用程序,请确保用户有权进行安装。