4
7

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メッセージの添付ファイルを取得する

Posted at

Teamsメッセージには添付ファイルを含めることが可能です。
image.png
このように表示されます。
このメッセージをPower Automateで分析する方法を考えてみます。

トリガーで受け取る

[自動化したクラウドフロー]->[チャネルに新しいメッセージが追加されたとき]
または
[インスタントクラウドフロー]->[選択したメッセージに対して]
のいずれかでメッセージを受け取ります。今回は後者で取得します。
以下のようなフローを作成します。
image.png

このフローは、Teamsの「…」をクリックして実行できます。
image.png

実行結果を見ると以下のようなデータになっていることがわかります。
image.png

なんとなく以下の部分が添付ファイルのように思えますが、attachment id に関する情報はこれしか含まれていません。

               "Body": {
                    "ContentType": "text",
                    "Content": "今日もテスト<attachment id=\"b2acb6d0-2229-4856-a6d2-6d8b374d****\"></attachment>",
                    "PlainText": "今日もテスト<attachment id=\"b2acb6d0-2229-4856-a6d2-6d8b374d****\"></attachment>"
                }

ということで詳細を取得してみます。
image.png
同じように出力結果を見てみると今度はattachments が含まれていました

    "attachments": [
        {
            "id": "b2acb6d0-2229-4856-a6d2-6d8b374d****",
            "contentType": "reference",
            "contentUrl": "https:/*****.sharepoint.com/sites/msteams_******/Shared Documents/General/OfficeScriptとは.pptx",
            "content": null,
            "name": "OfficeScriptとは.pptx",
            "thumbnailUrl": null
        }
    ],

この contentUrl が欲しいですよね。
image.png
しかしcontentUrlらしきものが出てきません。このような場合、JSONデータの中身を直接参照してあげる必要があります。

以下のようにしてみます。

body('メッセージの詳細を取得する)?['attachments/contentUrl']

image.png

これを実行するとエラーは出ませんが、文字列はEmpty(から)になります。attachmentsはアレイになっているので一度アレイ型変数に入れてから取り出してみましょう。

※「変数を初期化する」の値は body('メッセージ詳細を取得する')?['attachments']
※「文字列変数に追加」の値は items('Apply_to_Each')?['contentUrl']

image.png

今度は値が取れています。

image.png

まとめ

ポップアップで自動的に取得できない属性がありますが、item()?[//ここの値を自分で式に追加//] することで取得できます。一度テスト実行してJSONの中身を確認することができます。もし配列になっているようであれば、一度アレイ変数に代入してから参照するとよいでしょう。

4
7
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
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?