タイトルの通り、Power Automateを使用してTeamsに投稿する際の注意点(小ネタ)について覚書とリンク集を残します。
投稿に対してチャネルユーザーのアクションを期待するとき
アダプティブカードを使用すると便利
また、アダプティブカードでメンションを使用したい場合は以下の記事が参考になります。
※アダプティブカードデザイナー
アクション「チャットまたはチャネルでメッセージを投稿する」を使用するとき
Teamsの鍵付きチャネルに投稿させるとき
投稿先のチャネルが鍵付きである場合、投稿者を「フローボット」にするとフローボットがそのチャネルにアクセスする権限がないためエラーとなってしまいます。
修正
修正パターンとしては以下のいずれかが考えられると思います。
ただしこの方法を選択した場合は「ユーザー」=フローの作成者となってフロー作成者が投稿を行ったことになりフロー作成者自身に通知が来ません。
- 公式サイトの説明にある通りに設定する。
フロー ボットを使用するアクションでは、Power Automate アプリが使用可能であり、Teams 管理センターで「許可」状態にしておく必要があります。
Teamsにリンクを含む投稿を行うとき
【例】SharePointで追加されたアイテムのリンクをTeamsで送る場合
問題
そのままだと文字列としてリンクが送られてしまいます。
修正
- HTMLのaタグでリンクの文字列を囲ってやる必要があります。
- 【サンプル】
<a href="アイテムへのリンク" target="_blank" rel="noopener noreferrer">アイテムを開く</a>
”アイテムのリンク”
「SharePointでアイテムが追加されたとき」をトリガーにした場合、Power Automate側で自動的にアイテムとして取得されています。
”アイテムを開く”
こちらの文字列は任意の文字列になります
また、 HTMLのaタグの使い方についてはこちらのページが参考になります。
参考
Teamsにメンションを付けて投稿する
方法
UPN(ユーザープリンシパルネーム)
基本的にユーザーのMicrosoft365のメールアドレスですが、UPNとメールアドレスが必ずしも一致するとは限りません。
ただし、大量のメンションタグを含む投稿を行おうとするとエラーになる可能性があります。
発生する可能性のあるエラー
例➊(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": "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
}
}
}
参考
403エラーが発生した時
これはTeams関連のアクションに限った話ではなく、OneDriveやSharePointなどといった「接続」を使用するアクションで考えられる問題です。※403エラーについてはこちら
修正
基本的にはエラーが発生している接続をいったん削除して再作成すると解消されます。
接続の作成の仕方↓