【小ネタ集】Power AutomateからTeamsに投稿するときのTip's

タイトルの通り、Power Automateを使用してTeamsに投稿する際の注意点（小ネタ）について覚書とリンク集を残します。

# 投稿に対してチャネルユーザーのアクションを期待するとき
アダプティブカードを使用すると便利

https://www.teijitaisya.com/adaptivecards/

https://www.teijitaisya.com/adaptivecard-response/


また、アダプティブカードでメンションを使用したい場合は以下の記事が参考になります。

https://www.teijitaisya.com/adaptivecard-mention/

**※アダプティブカードデザイナー**

https://www.adaptivecards.io/designer/


# アクション「チャットまたはチャネルでメッセージを投稿する」を使用するとき
## Teamsの鍵付きチャネルに投稿させるとき
![Inkedteams1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/8a24ad29-aecd-8fde-225f-ea993fb9c77e.jpeg)
投稿先のチャネルが<font color="red">鍵付きである場合、</font>投稿者を「フローボット」にするとフローボットがそのチャネルにアクセスする権限がないためエラーとなってしまいます。

**エラーの内容**
![teams2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/70122845-6b7d-719b-eec3-521e9a180eb2.png)

**修正**
修正パターンとしては以下のいずれかが考えられると思います。

- 投稿者を「ユーザー」にする。
![Inkedteams1_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/46233c77-4d2c-c571-6d5a-052602b992bd.jpeg)

:::note warn
ただしこの方法を選択した場合は「ユーザー」＝フローの作成者となってフロー作成者が投稿を行ったことになりフロー作成者自身に通知が来ません。
:::

- [公式サイト](https://docs.microsoft.com/ja-jp/connectors/teams/#known-issues-and-limitations)の説明にある通りに設定する。

> フロー ボットを使用するアクションでは、Power Automate アプリが使用可能であり、Teams 管理センターで「許可」状態にしておく必要があります。

## Teamsにリンクを含む投稿を行うとき
【例】SharePointで追加されたアイテムのリンクをTeamsで送る場合
**問題**
そのままだと文字列としてリンクが送られてしまいます。
![Items (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/e3cddcc9-e513-5e0b-fcef-9c5533a0cd93.png)
**修正**
- <font color = red>HTMLのaタグでリンクの文字列を囲ってやる</font>必要があります。
- 【サンプル】
`<a href="アイテムへのリンク" target="_blank" rel="noopener noreferrer">アイテムを開く</a>`<br>

:::note info
<b>”アイテムのリンク”</b>
「SharePointでアイテムが追加されたとき」をトリガーにした場合、Power Automate側で自動的にアイテムとして取得されています。
:::

:::note info
<b>”アイテムを開く”</b>
こちらの文字列は任意の文字列になります
:::
また、 HTMLのaタグの使い方については[こちらのページ](http://www.htmq.com/html/a.shtml)が参考になります。

**修正の結果**
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f32323138363.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/503b9fb3-5ba6-1338-63af-c4d4551f8f5b.png)

**参考**

https://echigoya-blog.net/sharepoint-teams-posting/


## Teamsにメンションを付けて投稿する
**方法**
1. アクションの引数"Message"をコードビューに切り替える
![Items.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/68681158-c879-c95b-0722-af420abc6266.png)

1. コードビューで`<at>メンション相手のUPN</at>`を追加
![Items (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218676/e4132112-d19e-1686-1538-99cc9209f170.png)

:::note warn
<b>UPN(ユーザープリンシパルネーム)</b>
基本的にユーザーのMicrosoft365のメールアドレスですが、UPNとメールアドレスが必ずしも一致するとは限りません。
:::

:::note info
 アクション「ユーザーの@mentionトークンを取得する」で生成した動的なコンテンツ「@mention」を使用して投稿することも可能です。
:::

:::note alert
ただし、大量の<at>メンションタグを含む投稿を行おうとするとエラーになる可能性があります。
:::

**発生する可能性のあるエラー**

例➊（2022/02/21時点で21件以上のメンション付きメッセージを送信しようとした場合に同現象を確認。）

```
{
  "error": {
    "code": 500,
    "message": "Unexpected character encountered while parsing value: E. Path '', line 0, position 0.\r\n   at Newtonsoft.Json.JsonTextReader.ParseValue()\r\n   at Newtonsoft.Json.Linq.JArray.Load(JsonReader reader, JsonLoadSettings settings)\r\n   at Newtonsoft.Json.Linq.JArray.Parse(String json, JsonLoadSettings settings)",
    "source": "japan-001.azure-apim.net",
    "path": "choose[21]\\when[1]\\choose\\when[1]",
    "policyId": "",
    "clientRequestId": "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
  }
}
```

例➋

```
{
  "error": {
    "code": "BadRequest",
    "message": "Neither Body nor adaptive card content contains marker for mention with Id '0'. Add '<at id=\"0\">XXX　XXXX</at>' to the body or an adaptive card.",
    "innerError": {
      "date": "20XX-XX-XXTXX:XX:XX",
      "request-id": "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■",
      "client-request-id": "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
    }
  }
}
```

**参考**

https://www.teijitaisya.com/powerautomate-teams-mention/

https://www.teijitaisya.com/powerautomate-mention-multicast/


# 403エラーが発生した時
これはTeams関連のアクションに限った話ではなく、OneDriveやSharePointなどといった「接続」を使用するアクションで考えられる問題です。**※403エラーについては[こちら](https://keywordfinder.jp/blog/seo/403-forbidden/#:~:text=%E4%B8%8A%E8%A8%98%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB403%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86%E3%82%B1%E3%83%BC%E3%82%B9%E3%81%AB%E3%81%AF%E6%A7%98%E3%80%85%E3%81%AA%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%8C%E8%80%83%E3%81%88%E3%82%89%E3%82%8C%E3%80%81%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%84.htaccess%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90%E4%BB%A5%E5%A4%96%E3%81%AB%E3%82%82%E3%80%81DNS%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%B8%8D%E5%82%99%E3%82%84%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E5%81%B4%E3%81%AE%E9%9A%9C%E5%AE%B3%E3%82%82%E8%80%83%E3%81%88%E3%82%89%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82.%20%E3%81%9D%E3%81%97%E3%81%A6%E4%B8%BB%E3%81%AB%E3%81%AF%E4%B8%8B%E8%A8%98%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%AE%E6%A8%A9%E9%99%90%E3%81%8C%E7%90%86%E7%94%B1%E3%81%A7%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6%E9%96%93%E3%82%82%E3%81%AA%E3%81%84%E9%A0%83%E3%81%AEDNS%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%9F%E3%82%B9%E3%82%84%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E2%80%9C%E3%82%88%E3%81%8F%E3%81%82%E3%82%8B%E8%B3%AA%E5%95%8F%E2%80%9D%E3%81%AA%E3%81%A9%E3%81%AB%E3%82%82%E3%82%88%E3%81%8F%E8%A8%98%E8%BC%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%80%81DNS%E3%81%8C%E5%AE%8C%E5%85%A8%E3%81%AB%E6%B5%B8%E9%80%8F%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A7%E6%95%B0%E6%99%82%E9%96%93%E3%81%8B%E3%81%8B%E3%82%8B%E5%A0%B4%E5%90%88%E3%82%82%E3%81%82%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81%E3%81%9D%E3%81%86%E3%81%84%E3%81%A3%E3%81%9F%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%BF%9C%E3%81%A8%E3%81%97%E3%81%A6%E3%81%AF%E3%81%9F%E3%81%A0%E5%BE%85%E3%81%A4%E3%81%97%E3%81%8B%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.,HTTP%20403%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%20Forbidden%EF%BC%88%E3%80%8C%E9%96%B2%E8%A6%A7%E7%A6%81%E6%AD%A2%E3%80%8D%E3%80%8C%E7%A6%81%E6%AD%A2%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%8D%E3%81%AE%E6%84%8F%EF%BC%89%E3%81%AF%E3%80%81HTTP%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%80%E3%81%A4%E3%80%82.)**

**修正**
基本的にはエラーが発生している接続をいったん削除して再作成すると解消されます。

接続の作成の仕方↓

https://docs.microsoft.com/ja-jp/power-automate/add-manage-connections#:~:text=Power%20Automate%20%E3%81%AB%E4%BB%95%E4%BA%8B%E7%94%A8%E3%82%84%E7%B5%84%E7%B9%94%E3%81%AE%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E3%81%A7%E3%82%B5%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%E5%B7%A6%E5%81%B4%E3%81%AE%E3%83%9A%E3%82%A4%E3%83%B3%E3%81%A7%E3%80%81%20%E3%83%87%E3%83%BC%E3%82%BF%20%3E%20%E6%8E%A5%E7%B6%9A%20%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82,%E6%96%B0%E3%81%97%E3%81%84%E6%8E%A5%E7%B6%9A%20%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%20%E4%BD%BF%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%AA%E6%8E%A5%E7%B6%9A%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%E3%81%A7%E3%80%81%E3%83%97%E3%83%A9%E3%82%B9%E8%A8%98%E5%8F%B7%20%28%20%2B%29%20%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E3%80%81%E8%A8%AD%E5%AE%9A%20%28SharePoint%29%20%E3%81%99%E3%82%8B%E6%8E%A5%E7%B6%9A%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82