顺序工作流

自适应卡片现在支持按用户操作更新的顺序工作流。 使用顺序工作流时,自适应卡片会根据用户操作进行更新,用户可以通过一系列需要用户输入的卡片进行进度。 Action.Execute 支持顺序工作流,它允许机器人开发人员返回自适应卡片以响应用户操作。

例如,假设自助餐厅希望为团队或频道订购订单。 通过 Action.Execute 用户对各种项目(如食物和饮料)的选择,可以按顺序记录。 用户还可以根据机器人开发人员定义的逻辑来回浏览卡片。

下图显示了顺序工作流:

顺序工作流

用户无需修改其他用户的卡即可完成其工作流。 工作流对于使用顺序自适应卡片进行测验也很有用。 下图显示了不同的用户可以处于工作流的不同阶段以及卡的状态:

餐饮机器人状态

注意

若要跨设备同步用户的进度,请使用 refresh 自适应卡片 JSON 中的 属性。

自适应卡片的顺序工作流

以下代码提供了自适应卡片的示例:

{
  "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
  "type": "AdaptiveCard",
  "version": "1.4",
  "body": [
    {
      "type": "TextBlock",
      "text": "Select from food options"
    },
    { 
      "type": "ActionSet",
      "actions": [
        {
          "type": "Action.Execute",
          "title": "Chicken",
          "verb": "food",
          "data": {
              "item": "chicken"
          }
        },
        {
          "type": "Action.Execute",
          "title": "Beef",
          "verb": "food",
          "data": {
              "item": "beef"
          }
        },
        {
          "type": "Action.Execute",
          "title": "Vegan",
          "verb": "food",
          "data": {
              "item": "vegan"
          }
        }
      ]
    }
  ]
}

Action.Execute调用机器人可以返回自适应卡片作为响应,这将替换 Teams 中的现有卡。 以下示例提供机器人在食物或饮料选择或订单确认时返回的内容:

  • 在从卡 1 中选择食物时,机器人可以返回卡来选择卡 2 中的饮料。
  • 在从卡 2 中选择饮料时,机器人可以返回订单确认卡卡 3。
  • 从卡 3 确认订单后,机器人可以返回已确认卡订单,即卡 4。

调用在机器人端收到的请求

以下代码提供了在机器人端收到的调用请求的示例:

{ 
  "type": "invoke",
  "name": "adaptiveCard/action",

  // ... other properties omitted for brevity

  "value": { 
    "action": { 
      "type": "Action.Execute", 
      "id": "", 
      "verb": "food",
      "data": { 
            "item": "vegan"
      } 
    },
    "trigger": "manual" 
  }
}

调用响应以返回自适应卡片

以下代码提供了返回自适应卡的调用响应示例:

string cardJson = "<adaptive card json>";
var card = JsonConvert.DeserializeObject(cardJson);

var adaptiveCardResponse = JObject.FromObject(new
 {
    statusCode = 200,
    type = "application/vnd.microsoft.adaptive.card",
    value = card
 });

代码示例

示例名称 Description .NET Node.js 清单
Teams 餐饮机器人 此示例演示使用自适应卡片接受食品订单的机器人。 View NA NA
顺序工作流自适应卡片 此示例演示了机器人中顺序工作流、用户特定视图和当前自适应卡片的实现。 View View View

另请参阅