Power Automateのフローにて、「アダプティブ カードを投稿して応答を待機する」アクションを用いて、Teams上から回答結果を取得したいということがあると思います。
私はアダプティブ カードを作成するために必要なJSON構文の知識が少ないため、アダプティブ カード デザイナーを用いてJSON構文を作成しています。
しかし、アダプティブ カード デザイナーで作成したJSON構文を入力しても、フローでエラーが発生する事象がありました。
今回は発生したエラー内容とその解決策をご紹介します。
本記事の対象者
本記事は、JSONの知識が初心者レベルの方向けの記事となっています。
また、アダプティブ カード デザイナーを利用したことがある方を想定しています。
※ アダプティブ カード デザイナーについては過去の記事もご参照ください。
上記を前提に本記事をご覧ください。
実現したかったこと
Teamsでアダプティブ カードを用いてユーザーにメッセージを送信し、回答結果を取得しようとしていました。
下記画像のイメージです。
アダプティブ カード デザイナーを用いてJSON構文を作成すれば、簡単に実装できる内容と考えていました。
エラー事象と対応策
アダプティブ カード デザイナーでJSON構文を作成
実際にアダプティブ カード デザイナーを用いて、実現したい内容でアダプティブ カードを作成し、JSON構文を作成しました。

作成したJSON構文は以下の通りです。
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "どちらが食べたいですか",
"wrap": true
},
{
"type": "Input.ChoiceSet",
"choices": [
{
"title": "りんご",
"value": "りんご"
},
{
"title": "みかん",
"value": "みかん"
}
],
"placeholder": "選んでください"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
]
}
作成したJSON構文をアクションに記載して実行
実際に、上記のJSON構文を記載して実行してみました。
※ 本記事では簡略化して「アダプティブ カードを投稿して応答を待機する」アクションの後続にアクションを追加していませんが、実際には回答結果を活用したいアクションを入れてください。

上記の状態でテスト実行すると、以下のようにBadRequestのエラーが発生しました。

エラーの原因
エラーメッセージを確認すると、以下のような一文がありました。
Required property 'id' not found on 'Input.ChoiceSet'
どうやら、選択肢を形成する「Input.ChoiceSet」にidが不足しているようです。
対応策
そこで、アダプティブ カード デザイナーで「Input.ChoiceSet」にidを追加します。
[ CARD STRUCTURE ]で[ Input.ChoiceSet ]を選択し、[ Id ]に今回は「choice」と入力します。

入力後のJSON構文は下記の通りです。先ほどのJSON構文と比較すると「Input.ChoiceSet」に「"id": "choice"」が追加されていることが分かります。
{
"type": "AdaptiveCard",
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "どちらが食べたいですか",
"wrap": true
},
{
"type": "Input.ChoiceSet",
"choices": [
{
"title": "りんご",
"value": "りんご"
},
{
"title": "みかん",
"value": "みかん"
}
],
"placeholder": "選んでください",
"id": "choice"
}
],
"actions": [
{
"type": "Action.Submit",
"title": "送信"
}
]
}
修正した構文でテスト
修正したJSON構文を記載して実行してみました。

すると、今度はエラー無く実行することが出来ました。

送られてきたアダプティブ カードです。

質問に回答した後、設定したIdの「choice」に回答結果である「みかん」が格納されていることと、状態が「成功」になっていることが分かります。このことから、回答結果を格納するためのIdが必要であることが分かりました。

アダプティブ カード デザイナーでの警告
お気づきの方もいるかもしれませんが、実はアダプティブ カード デザイナーでの編集画面で、Idが無いことを警告してくれていました。

上記、画像で赤枠で囲っている部分には、以下の英文が表示されています。
[Validation] All inputs must have a unique Id.
翻訳すると「一意のIdが必要です。」という意味です。この時点で、Idが必要であることを教えてくれていることが分かります。
実際に、Idを入力した後は、上記の英文表示が消えていることが確認できます。

アダプティブ カード デザイナーで青いバナーと英文が表示される場合は、警告文であることも学習することが出来ました。
終わりに
「アダプティブ カードを投稿して応答を待機する」で発生したエラーと対応策をご紹介しました。
同じような現象で悩んでいる方の参考になれば幸いです。