通道参考

适用于:SDK v4

本文概述了对各种 Bot Framework 功能的通道支持:

  • 每个通道可以发送或接收的活动类型。
  • 每个通道可以显示的卡片类型,包括自适应卡片。
  • 每个通道上支持的卡操作和建议的操作。
  • 不同活动类型的一般分类。

有关协议级别的活动和卡片结构的详细信息,请参阅 活动协议规范。

自适应卡片是一种单独的技术。 有关详细信息,请参阅 adaptivecards.io。

按通道列出的活动支持

下表指示给定通道是否可以向机器人发送给定活动类型。 下面的表中是各个术语及其对应含义。

术语 含义
是 机器人可以从通道接收此活动。
否 机器人无法从通道接收此活动。
未确定 当前未确定。
Channel 联系人关系更新 对话更新 对话结束 活动 安装更新 Invoke 消息 消息回应 消息更新 消息删除 Typing
Direct Line 否 是 是 是 是 否 是 否 否 否 是
Microsoft Teams 否 是 否 未确定 否 是 是 是 是 是 否
Web 聊天 否 是 是 是 是 否 是 否 否 否 是

对 event 和 invoke 活动的支持因活动的名称而异,并且因通道而异。

按渠道显示的卡片支持

下表指示给定通道是否可以呈现给定卡片类型。 即使通道可以呈现卡片类型,通道也可能不支持卡片上的所有功能。 在发布机器人之前,请测试机器人可以发送的每个卡片的行为。

下面的表中是各个术语及其对应含义。

术语 含义
是 此通道支持卡片;但是,任何给定通道可能仅支持卡片操作的子集,或者可能限制每个卡片上允许的操作数。
否 此频道不支持该卡片。
部分 部分支持。 如果卡片包含输入或按钮,则此通道可能不会显示卡片。 支持级别因通道而异。
图像 将卡片转换为图像。
文本 将卡片转换为无格式文本。 链接可能无法单击,图像可能无法显示,并且媒体可能无法播放。 支持级别因通道而异。
Channel 自适应卡片 动画卡 音频卡 英雄卡 收据卡 登录卡 缩略图卡 视频卡
Microsoft Teams 是 否 否 是 是 是 是 否
Web 聊天 是 是 是 是 是 是 是 是

注意

  • Direct Line 通道在技术上支持所有卡片,但该支持需要客户端来实现。
  • 对于 Azure 通信服务聊天,自适应卡片仅在 Azure 通信服务用例中受支持,且不适用于 Azure 通信服务 到 Teams 用例。

按通道列出的卡片操作支持

下表显示了给定通道支持的建议操作和卡片操作的最大数量。 值为“None”表示通道不支持该操作类型。

Channel 建议操作 卡操作
Direct Line 100 100
Microsoft Teams 无 3
Web 聊天 100 100

活动类别

活动可以拆分为不同的类别。 有关每种活动的详细说明以及每种类型包含的信息,请参阅 活动协议规范。

欢迎使用

此类别包括 conversationUpdate 和 contactRelationUpdate 活动。

  • 许多通道都发送对话更新活动。
    • 机器人欢迎行为通常由对话更新活动触发。 但是,生成可靠的欢迎行为可能需要使用对话或用户状态。
  • 某些通道发送联系人关系更新活动。
    • 如果机器人使用这些通道,则可能需要在机器人的欢迎行为中包含此活动的逻辑。

对话

此类别包括和message、messageReaction 和 endOfConversation 活动。

  • 所有通道都可以发送和接收消息活动。
    • 对于使用对话的机器人,通常应将消息活动传递到对话中。
  • 某些通道可以发送和接收消息反应活动。
    • 根据机器人的设计,可以将消息反应活动传递到对话中。
    • 消息反应活动按 ID 引用以前的消息。
  • 对话结束活动从发送者的角度表明对话结束。
    • 对话结束活动用于机器人到机器人的关于技能的通信。

提示

消息反应是对以前的评论执行的操作,例如点赞。 它们可能不按顺序发生,因此可以认为它们类似于按钮。 此活动类型可通过 Teams 通道发送。

消息更新和删除

此类别包括 messageUpdate 和 messageDelete 活动。

  • Teams 支持消息更新和删除活动。

应用程序扩展性

此类别包括 event 和 invoke 活动。 活动的含义是由 name 字段定义的,该字段在通道范围内有意义。

  • 拥有客户端和服务器的应用程序可以使用事件活动在客户端和服务器之间传送编程信息。
    • 事件活动(与大多数活动类型类似)是异步的。
    • Direct Line 和网上聊天使用事件活动作为一种扩展性机制。
  • 调用活动特定于某个应用程序,而非特定于客户端将定义的事物。
    • 与其他活动类型不同,调用活动是同步的。 (调用当前是机器人上触发“请求-回复”行为的唯一活动类型。)
    • Microsoft Teams 使用调用活动并定义一些特定于 Teams 的调用活动。

身份验证

若要使 OAuth 提示与对话一起使用,必须将 TeamsVerification 调用活动转发到对话。

未分类的

installationUpdate、typing、和 handoff 活动的含义与其他类别都不太匹配。

  • 安装更新活动表示在通道的组织单位内安装或卸载机器人。
  • 键入活动表示用户或机器人正在进行的输入。
  • 转接活动请求改变机器人内元素之间的焦点,或者发出信号说明焦点已发生变化。 转接活动不同于名为“handoff”的事件活动。

停止使用(包括特定于付款的调用)

以下活动类型不再使用:

  • deleteUserData
  • handoff
  • ping
  • Address调用
  • PaymentRequest调用

其他信息

所有通道都可以发送和接收 message 活动。

提示

向机器人添加对通道的支持时,请熟悉该通道的开发人员文档。每个频道在对话的各个方面都有不同的限制。 它们的区别包括:

  • 机器人处理每个 HTTP 请求所需的时间。
  • 机器人是否可以发送不响应特定用户活动的活动。
  • 机器人可以在给定的时间范围内可发送多少条消息。
  • 如何呈现卡以及支持哪些卡。