PowerAutomate: Teams での メンション まとめ

# 背景
Tag 用のメンションが対応されたけど、予想とちょっと違ったので現時点での比較
会社で使えるコネクター部分をまとめておく

# 制約
https://docs.microsoft.com/ja-jp/microsoftteams/limits-specifications-teams#tags

Tag への登録数などの制限もあるので注意

# 概要
1. Teams Channel 内 Tag を使った Mention (メンション) 
1. HTML タグを利用した、メンション比較
    - \<at>
        - UserID, UserEMail を囲むことでメンション可能<br><code>\<at>{UserId}\</at></code><br><code>\<at>{UserEmail}\</at></code>
    - \<atTag> :new: 
        - TagID, TeamID を囲むことで、タグメンション可能<br><code>\<atTag>\<tagId>{id}\</tagId>\<groupId>{teamId}\</groupId>\</atTag></code> 

List Tags は、以下とかで使えそう
- 役割を Tag 設定しておいて、自動応答での役割担当へのメンション

:::note warn
\<atTag> は、現状 Post as を **User** 以外で使うと以下エラーが出ます
:::
```json:atTagError
{
    "error": {
      "code": 400,
      "message": "Mentioning tags is currently only supported when posting as a user. Please change the poster type to user or remove the at mentions for tags.",
      "source": "japan-001.azure-apim.net",
      "path": "choose[22]\\when[1]",
      "policyId": "",
      "clientRequestId": "8bb1de33-5a77-4d97-b061-1bf73980a539"
    }
  }
```

# Teams Channel Tag のメンション
以下二点のコネクターの利用例

:::note info
DEPRECATED (廃止) がついてるのは、すぐに Version 2 とかにあがる？
:::

- [List all tags for a team [DEPRECATED]](https://docs.microsoft.com/en-us/connectors/teams/#list-all-tags-for-a-team-[deprecated])<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/436f6935-8adc-bfc6-74d8-1a8960464237.png)
- [Get an @mention token for a tag [DEPRECATED]](https://docs.microsoft.com/en-us/connectors/teams/#get-an-@mention-token-for-a-tag-[deprecated])<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/2e3e1113-3fef-9d5c-2013-37ba6dd8e500.png)

:::note warn
日本語ドキュメントはまだ未対応
:::

## 直接取得して Tag メンション
1. Team, Tag を選択して、<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/0d973193-9513-ff8d-2a64-d5b6cf3e4824.png)
1. 動的コンテンツから選択してしまえば<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/b6c2e4ff-16d9-d1d2-cfda-83b57ee4d781.png)
1. こんな感じで使える<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/5e35a196-1a9a-a5b9-981d-457b70211371.png)

:::note info
adaptive card の例だが、message でも同様
:::

## 名称を指定して使う場合（tag 一覧から、名称一致を選択）
1. 対象チームの Tag 一覧を取得して JSON 解析<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/1a2efbed-9e9b-0f75-0ad7-4ccf0361867b.png)

1. [displayName] で名称を抽出して<br>以下では Filter array を利用しているのでそのまま使うなら First()?['id'] や [0]?['id'] という指定が必要<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/cd7771ed-dfdd-29aa-a7fb-eeffb92c401c.png)

1. [ID] を使って、メンションタグを生成<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/c1e424d0-defa-575d-19fa-e160dbb7e745.png)

1. 動的コンテンツ、もしくは、\<atTag>\<tagId>{id}\</tagId>\<groupId>{teamId}\</groupId>\</atTag> で手書きする<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/4d20e1e1-1e6e-a24f-7697-b42643cff007.png)

1. 利用例<br>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/f4faa6c6-29b8-7b7b-298d-b0bc5b82bcbb.png)

# \<at> vs \<atTag>
Tag Mention と User Mention を Adaptive Card と Message の二種類で実施した例が以下

何故か adaptive card の書式が変ではある
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120072/fd5634e3-43c9-580e-3b7a-9bc93d3bfbac.png)

# あとがき
そのうち以下も対応されるといいね。
- @team
- @channel

\<at>, \<atTag> で TeamID や ChannelID を囲ってみたけど、全然ダメ。\<atTag> は応答すら返ってこない。