シーケンシャル ワークフロー
アダプティブ カードでは、ユーザー アクションで更新されるシーケンシャル ワークフローがサポートされるようになりました。 シーケンシャル ワークフローを使用すると、ユーザー アクションでアダプティブ カードが更新され、ユーザーはユーザー入力を必要とする一連のカードを進めることができます。
Action.Execute
はシーケンシャル ワークフローをサポートしています。これにより、ボット開発者はユーザー アクションに応答してアダプティブ カードを返すことができます。
たとえば、カフェテリアがチームまたはチャネルの注文を受けたいシナリオを考えます。
Action.Execute
では、食品や飲み物など、さまざまなアイテムに対するユーザーの選択を順番に記録できます。 ユーザーは、ボット開発者によって定義されたロジックに従って、カードを行き来することもできます。
次の図は、シーケンシャル ワークフローを示しています。
ユーザーは、他のユーザーのカードを変更することなく、ワークフローを進めることができます。 このワークフローは、シーケンシャル アダプティブ カードを使用してテストを実施する場合にも役立ちます。 次の図は、さまざまなユーザーが、カードのワークフローと状態の異なる段階にある可能性を示しています。
注:
デバイス間でユーザーの進行状況を同期するには、アダプティブ カード JSON の refresh
プロパティを使用します。
アダプティブ カードのシーケンシャル ワークフロー
次のコードは、アダプティブ カードの例を示しています。
{
"$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
});
コード サンプル
サンプルの名前 | 説明 | .NET | Node.js | マニフェスト |
---|---|---|---|---|
Teams ケータリング ボット | このサンプルは、アダプティブ カードを使用して食品の注文を受け入れるボットを示しています。 | 表示 | 該当なし | 該当なし |
シーケンシャル ワークフロー アダプティブ カード | このサンプルでは、ボットでのシーケンシャル ワークフロー、ユーザー固有のビュー、および現在のアダプティブ カードの実装を示します。 | 表示 | 表示 | 表示 |
関連項目
Platform Docs