14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-01-19

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

投稿に対してチャネルユーザーのアクションを期待するとき

アダプティブカードを使用すると便利

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

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

アクション「チャットまたはチャネルでメッセージを投稿する」を使用するとき

Teamsの鍵付きチャネルに投稿させるとき

Inkedteams1_LI.jpg
投稿先のチャネルが鍵付きである場合、投稿者を「フローボット」にするとフローボットがそのチャネルにアクセスする権限がないためエラーとなってしまいます。

エラーの内容
teams2.png

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

  • 投稿者を「ユーザー」にする。
    Inkedteams1_LI.jpg

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

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

Teamsにリンクを含む投稿を行うとき

【例】SharePointで追加されたアイテムのリンクをTeamsで送る場合
問題
そのままだと文字列としてリンクが送られてしまいます。
Items (1).png
修正

  • HTMLのaタグでリンクの文字列を囲ってやる必要があります。
  • 【サンプル】
    <a href="アイテムへのリンク" target="_blank" rel="noopener noreferrer">アイテムを開く</a>

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

”アイテムを開く”
こちらの文字列は任意の文字列になります

また、 HTMLのaタグの使い方についてはこちらのページが参考になります。

修正の結果
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f32323138363.png

参考

Teamsにメンションを付けて投稿する

方法

  1. アクションの引数"Message"をコードビューに切り替える
    Items.png

  2. コードビューで<at>メンション相手のUPN</at>を追加
    Items (1).png

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

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

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

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

例➊(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エラーについてはこちら

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

接続の作成の仕方↓

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?