6
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 3 years have passed since last update.

SharePointへの画像アップロードをTeamsにお知らせする

Posted at

TeamsにSharePointの画像を投稿すると、リンクは貼られるんだけど、サムネイル的なものが表示されないんですよね...
image.png
以前も似たような投稿をしたのですが、今回はSharePointのドキュメントライブラリを対象に、ファイルがアップロードされたら、画像ファイルのときだけTeamsに通知するようなFlowをご紹介します。

なかなか良い感じにできました。
image.png

全体像

今回も比較的短いFlowで、数式もほとんど使わずでした。躓きポイントがあるので、そこを中心にご紹介します。
image.png
※サムネイルのURLは期間限定なので、これを直接つかってTeamsに投稿しても、1日くらいしか表示されないです。

躓きポイント1 : ファイル作成トリガーでアイテムのIDが取れない!!

いきなりです。ファイルのサムネイルを取得するためのアクションでは、対象となるファイルのIDが必要なのですが、これがトリガーから取れませんでした! (ここで20分くらい悩んだ)
image.png
前回はファイルをFlowボタンから作成していたので、ファイル作成の結果としてサムネイル取得に必要なIdが得られていましたが、SharePointでファイル作成をきっかけにすると取れないんです!

しかたないので、複数ファイルを取得するアクションで、サムネイルURLを取得します。
ここでポイントは、**「作成日の降順で1件だけ取得すること」**です。これでトリガーのきっかけになった1件をとれます。
※ただし結果は配列になっているので、first() 関数か、?[0] でレコードにアクセスします。
image.png

躓きポイント2 : サムネイル大 だと画像が表示されないことがある

もともと軽い画像ならよいのですが、ちょっと重い画像をアップロードしたところ、画像が表示されない投稿が出てきました。(下図の下側)
サムネイル大 のサイズを見てみると、100KBいかないくらいだと表示されるのですが、数100KBになると表示してくれなくなりました。
これは元のファイルサイズではなく、サムネイルのファイルサイズです。しかもエラーがでないので、検出のしようもない。
image.png

ここは単純に、大をあきらめて中にして回避します。
image.png

最後はすんなり。ファイル名とボタンを使ってAdaptive Cardを作成

ここまでできればあとは要領は一緒です。TeamsのAdaptive Cards投稿アクションを使って、最初に載せたような投稿をFlow botとして行います。
image.png

Adaptive Cardは、Adaptive Card Designerを使って行っていますが、そのうち、ここもビルトインのデザイナーになるんじゃないかなと思います。(なってほしい)

今回つかったjsonは

AC.json
{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "@{body('Get_files_(properties_only)')?['value']?[0]?['{FilenameWithExtension}']} is created!"
        },
        {
            "type": "Image",
            "altText": "",
            "url": "@{datauri(body('Get_file_content_using_path'))}"
        }
    ],
    "actions": [
        {
            "type": "Action.OpenUrl",
            "title": "View",
            "url": "@{body('Get_files_(properties_only)')?['value']?[0]?['{Link}']}"
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.0"
}

@マークがついている箇所は、皆さんのところで作成したFlowのアクション名に置き換える必要があります。アクション名まで同じになっていれば、コピペでうまく置き換えてくれます。

動かすとこのような感じ。
image.png

おわり

Power Automateで利用可能なTeams向けのAdaptive Cardはとても使い勝手のいいアクションです。
jsonを0から作る必要はなく、デザイナーで提供されているプレビューを見ながら作り上げることができますし、jsonなので、ほかでも使いまわしがしやすいです。

また、今回はそれほど利用していませんが、Power Automateの試験的機能をONにすると数式バーがすごく使いやすく、また動的コンテンツも探しやすくなりますので、ぜひ試してみてください!
image.png

6
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
6
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?