什么是 Microsoft Teams 应用?
构建在 Microsoft Teams 平台上的应用可通过托管的 Web 应用和服务扩展 Microsoft Teams 客户端(web、移动和桌面)。 Teams 平台提供一组丰富而灵活的可扩展性点、UI 构建和 API,以便你在构建应用程序时充分利用它们。 你的应用可以像为团队将现有网站嵌入到标签页中一样简单,也可以插入到功能完善的多方位应用中,以吸引整个 Teams 客户端中的用户。 你可以选择整合现有应用,或者创建完全针对 Teams 构建的新体验。
通过 Microsoft Teams 平台,你可以利用来自各种 Microsoft Teams API 的上下文特定信息增强你的服务,如与在其中安装 Teams 或频道相关的信息,或者应用程序通过其触发的消息。 你可以为单个用户、团队、整个组织创建应用,或者将你的应用发布到公共应用商店,以供大家使用。
Microsoft Teams 应用由哪些部分组成?
构建在 Microsoft Teams 平台上的应用包括三个主要部件:
- Microsoft Teams 客户端提供应用用于吸引用户的扩展点和 UI 点。
- 你的 Teams 应用包安装在 Microsoft Teams 中。 其中包含小图标、大图标和清单 JSON 文件。 清单文件包含应用的元数据(如应用名称、开发人员姓名等)、应用使用的可扩展点(如标签页和消息传递扩展)以及支持应用的 Web 服务指针(如机器人 ID 或标签页 URL)。
- 你托管的 Web 服务提供支持应用的 API 和逻辑。
请记住,Microsoft Teams 平台不是一项托管服务,支持应用的 Web 服务必须由你托管并且可由 HTTPS 通过 Internet 访问。
可以在哪里扩展 Teams 客户端?
可以在多个地方扩展 Microsoft Teams 客户端,以允许用户与你的应用交互。 根据你的应用场景,你可以选择重点关注单个扩展点(如个人对话机器人)或者组合多个扩展点。
Teams、频道和群聊
Teams、频道和群聊允许多人协作。 扩展上下文的应用适用于组或对话的所有成员,通常用于重点关注启用其他协作工作流程或者解锁新的社交互动。 你的应用可以访问 API,以允许她获取与对话中的成员、团队中的频道以及与团队或对话相关的元数据相关的信息。
它们可通过以下对象扩展:
- 对话、通话和在线媒体机器人,可通过聊天与对话成员交互,并响应事件(如添加的新成员或重命名的频道)。 此上下文中与机器人的所有对话将对频道或组的所有成员可见,因此,你需要确保对话与每一个人相关。
- 频道和群组聊天选项卡 ,提供为其安装的频道或群组聊天配置的全屏嵌入式 Web 体验。 所有成员将在同一共享 Web 应用上交互,因此,一般为无状态单页应用体验。
- 允许外部服务将消息发布到对话的 Webhook 和连接器。 你可以充分利用卡片和卡片操作,以创建丰富而可指导行动的消息。 Webhooks 提供简单、未经身份验证的单向方法将消息发布到频道,而连接器则提供的是一种稍微更加可靠的往来体验。
个人应用
个人应用是 Teams 应用的一部分,重点关注的是与单个用户的交互。 每个用户的体验都是独一无二的。 此应用部分可以固定到左侧导航栏中,支持用户一键访问。
它们可以包括:
- 对话、通话和在线媒体机器人,可与用户进行一对一对话。 由于这是一个私人对话,因此,如果你的应用需要与用户进行多轮对话,或者提供仅与单个用户相关的通知,通常来说最好是在个人应用中进行该交互。
- 个人标签页,提供全屏嵌入式 Web 体验。
消息
消息是在 Teams 中进行协作的核心部分。 通过消息传递扩展操作命令,你的应用可以允许用户从消息调用应用 API,从而将消息内容发送给你的应用,以便进行处理或操作。 你的应用可以做出以下响应:通过向用户展示表单(任务模块)来收集详细信息、向原始消息发送回复,或者直接向用户发送回复。
撰写消息
你的应用可以通过支持对消息进行搜索来帮助用户撰写更有效的消息,或者在外部系统中采取操作,并以丰富而结构化的格式插入结果(通过可指导行动的按钮完成)。
你的应用可以通过以下三种方式帮助用户创建更好的消息:
- 消息传递扩展 - 操作命令,向你的用户展示模式表单(任务模块),将表单结果提交给应用,然后将消息直接插入到对话中,或者创建用户在发送至对话之前可以编辑的消息部分。
- 消息传递扩展 - 搜索命令,允许用户快速搜索外部系统,预览搜索结果,然后将结果作为丰富卡片插入到聊天中。
- 消息传递扩展 - 链接展开,允许你的应用监控你的感兴趣的 Web 域。 将包含域的 URL 粘贴到消息撰写框时,将会调用应用的 API,以允许你将丰富卡片添加到具有与所链接项相关的其他信息的消息。
会议应用
会议可实现协作、合作、明智的沟通和共享反馈。 会议应用可以为会议生命周期的每个阶段提供用户体验。
会议生命周期包括会议前、会议内和会议后应用体验,具体取决于与会者的状态。
用户界面 (UI) 元素
此外,对于可扩展点,Microsoft Teams 平台可提供灵活的 UI 元素,供应用充分利用。 你可以通过这些元素创建丰富的体验,这对 Teams 客户来说是原生的。
卡和卡操作
卡片是由架构式 JSON 定义的用户界面容器,可包含多个属性和附件。 它们可包含格式化的文本、媒体、控件(如下拉框和单选按钮)和触发卡片操作的按钮。 卡片操作可以向应用的 API 发送有效负载、打开链接、启动身份验证流或者向对话发送消息。 Microsoft Teams 平台支持多种类型的卡片,包括自适应卡片、主图卡片、缩略图卡片等。 它们可以组合到卡片锦集中,并以列表或旋转图的方式显示。
任务模块 (对话框)
任务模块允许你在 Teams 应用程序中创建模式弹出体验。 在弹出窗口中,你可以运行你自己的自定义 HTML/JavaScript 代码,显示 <iframe>
(如 YouTube 或 Microsoft Stream 视频)或显示自适应卡片。 对于启动和完成任务或者显示视频或 Power BI 仪表板之类的丰富信息来说尤其有用。 与基于选项卡或对话的机器人体验相比,弹出体验对于启动和完成任务的用户来说更加自然。
深度链接
你的应用可以创建 URL 深度链接以帮助用户在应用和 Teams 客户端中导航。 你可以在 Teams 中为多部分实体创建深度链接,部分深度链接(如新的会议请求)允许你使用 URL 中的查询字符串预填充信息。 例如,对话机器人可以向具有任务模块深度链接的频道发送消息,以便将卡片作为一对一消息发送给用户,这反过来会包含一个深度链接,用于创建在特定日期/时间与特定用户的新会议。 使用深度链接连接应用中提供的各个扩展点,让用户保持互连。
Web 内容页面
Web 内容页面是一个你托管的网页,可以嵌入到标签页或任务模块中。 要在 Microsoft Teams 客户端中嵌入你的网页,必须:
- 托管在 HTTPS 终结点上。
- 支持由 Teams 客户端嵌入到 中
<iframe>
。 - 包括 Microsoft Teams JavaScript 客户端 SDK,并调用 SDK 的
initialize()
页面加载方法。
摘要
然后,Microsoft Teams 应用是托管在 Microsoft Teams 外部的 Web 服务的集合,这些服务利用通过 Microsoft Teams 平台提供的扩展点和 UI 元素。