Adaptive Card: Teams の Input で Validation が使えるようになりました！

# 背景

Power Automate で Teams に投稿する場合、User からの反応を受け取る場合に入力確認が面倒でしたが、
Adaptive Card 1.3 が対応されたことで、この問題の解決策である Validation が使えるようになりました😁

https://adaptivecards.io/explorer/Input.Text.html


## Adaptive Card Designer も大きく変わって 1.5 まで切り替えて編集できるようになってます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/a4956862-3d4c-4aad-91df-f1a6cc880b50.png)

# Documents
https://docs.microsoft.com/ja-jp/adaptive-cards/authoring-cards/input-validation

英語版

https://docs.microsoft.com/en-us/adaptive-cards/authoring-cards/input-validation

# 環境

https://docs.microsoft.com/en-us/adaptive-cards/resources/partners#live

上記によると、1.4 対応ってなってますが・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/37871487-5928-98fd-2da9-7aa1fa493540.png)

自分の環境では、1.3 までの対応で、1.4 は以下のようなエラーになります・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/12963b92-afb2-6f5e-c0d2-b816f27a3faa.png)

## 追記
> それはFlowbotの制限じゃなかろうかと〜。Composerで作ったbotをTeamsに配置すれば多分1.4で動くと思います

Hiro さんに教えてもらったので追記。会社で使えそうにないので試してないです・・

# Designer における Input の変更点

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/f8772b49-5c96-d799-7d5c-348d9a533d04.png)

# 変更点について

- Label
    - Input の説明書きなどを書く為の Property。これまで、Placeholder で代わりにやっていた場合は置き換え推奨。
- Validation
    - Required
        - 必須かどうか？
    - Error message
        - 検証エラー時のメッセージ
    - Pattern → "regex"
        - 正規表現で記述。ここの Document がまだ見つからないけれど、一般的なので使える感じ。

# Validation
Designer が高機能になった！と喜んでたけど、max/min が対応してないとか・・。頑張って書きましょう😅

|Input|Properties|Designer|Teams|所感|
|-|-|-|-|-|
|Date|min||〇|
|↑|max||〇|
|Number|min||〇|
|↑|max||〇|
|Text|regex|〇|〇|"^", "$" は使えなかった・・。Designer ではなぜか "Pattern"・・|
|↑|maxLength|||この程度未対応というのが不思議|
|Time|min||〇|
|↑|max||〇|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/5f2adb6d-e2ee-b430-4690-ec70b0ae5b38.png)

# 利用例
## 設定例

```regex:Pattern・・含まれてればOKになってしまうので、何か方法がありそうではあるが現状不明
^\w+\d{2}$
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/1fc4b003-e929-c88f-7d92-5a8c1d8d484d.png)

```json:動作確認時のAdaptiveCard
{
    "type": "AdaptiveCard",
    "version": "1.3",
    "msteams": {
        "width": "full"
    },
    "body": [
        {
            "type": "Input.Text",
            "label": "ItemName を入れてください",
            "isRequired": true,
            "id": "InputName",
            "placeholder": "Alphabetical12",
            "regex": "^\\w+\\d{2}$",
            "errorMessage": "アルファベット一文字以上に続き二桁の数字を入れてください。",
            "maxLength": "8"
        },
        {
            "type": "Input.Number",
            "placeholder": "25",
            "label": "年齢を入れてください",
            "id": "InputAge",
            "errorMessage": "20-99歳で",
            "isRequired": true,
            "min": "20",
            "max": "99"
        },
        {
            "type": "Input.Date",
            "errorMessage": "2021/11/1 より後で",
            "min": "2021/11/1",
            "max": "2021/12/1",
            "id": "InputDate"
        },
        {
            "type": "Input.Time",
            "errorMessage": "12:00 - 14:00 で",
            "min": "12:00",
            "max": "14:00",
            "id": "InputTime"
        },
        {
            "type": "ActionSet",
            "actions": [
                {
                    "type": "Action.Submit",
                    "title": "Action.Submit"
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
}
```

## Designer 上
### エラー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/409f88a5-aeb5-fc14-b52c-5da8b1cf910f.png)

### 正常
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/318e801b-d0aa-609f-51fa-a4dc6fb3946b.png)

## Teams 上
### エラー
maxLength は効かないけど、それ以外はいい感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/0bc45446-2dd6-5a2e-dfed-af2a3741773f.png)

### 正常
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/489ecf84-d0a9-a463-e530-9e39b34d473c.png)