![見出し画像](https://assets.st-note.com/production/uploads/images/130397927/rectangle_large_type_2_ec861c33f0defd9e9dc5f21183747c04.png?width=1200)
SharePointリストからTeamsに画像投稿する自動化(Power Automateクラウド)
SharePointリストの画像の列を使って、Teamsのチャネルに画像を投稿する自動化を作ってみました。
※Power AppsのデータソースをSharePointリストにした時にも活用できます。
画像は1枚
ファイルサイズは、3MB未満(3MB以上はファイルリンク)にしています。
※画像は、4194304バイト未満の制限があります(4MB未満)。
![](https://assets.st-note.com/img/1707534833045-VaT3wosEIs.png?width=1200)
チームメンションができるフローも公開しました。
1.リストの作成
最初にリストを作成します。リスト名は、「TeamsImagePost」にしました。
※リスト名、列名は日本語でもOKですが、フローの式などが変わってしまうので、ご注意ください。
タイトル(1行テキスト)→Teamsの件名
Body(複数行テキスト)→Teamsの本文
Image(画像)→Teamsの本文
![](https://assets.st-note.com/img/1707491144315-vS2gXAIgqy.png?width=1200)
リストの設定で添付ファイルは「無効」にしてください。
仕様変更で画像の保存先が、SiteAssets(サイトのリソースファイル)では無く添付ファイルの保存先と同じになるようです。
![](https://assets.st-note.com/img/1707491547295-FNNQW41GFb.png?width=1200)
2.フローの作成
このフローは、トリガーをPower Apps(V2)に変更できます。また、新しいデザイナーを使っています。
①フローは、自動化したクラウドフローから、フロー名を入力、「項目が作成されたとき」、「作成」をクリックします。
![](https://assets.st-note.com/img/1707523466521-p8vhUwAzsp.png?width=1200)
②トリガーの「項目が作成されたとき」のサイトのアドレス、リスト名を選択します。
![](https://assets.st-note.com/img/1707524628537-iA3jiBGbBJ.png?width=1200)
次にトリガーの設定をします。この手順は、アップデートで必要なくなるかもしれません。
※次のアクションでループ処理になるのを回避するための設定です。
③「設定」の分割をOnにし、配列の「triggerOutputs()?['body/value']」を選択します。
![](https://assets.st-note.com/img/1707524817698-t0b9lIXORK.png?width=1200)
④アクションの追加で、SharePointの「項目の取得」を追加します。サイトのアドレス、リスト名を選択し、「ID」に動的なコンテンツからIDを追加します。
※動的なコンテンツで「ID」が表示されない場合は、式で追加してください。
![](https://assets.st-note.com/img/1707525156029-GwSE4ngEH7.png?width=1200)
⑤アクションの追加で、SharePointの「SharePointにHTTP要求を送信します」を追加します。サイトのアドレス、方法GET、URIは下記を追加します。
※@{body('項目の取得')?['ID']}は、項目の取得のIDです。動的なコンテンツから追加して画像のようにしてください。
※クラシックデザーナーであれば、コピペで下記JSONを追加できます。
※リスト名を変更した場合は、'TeamsImagePost'を'Teams画像投稿'のようにしてください。
_api/web/lists/getbytitle('TeamsImagePost')/Items(@{body('項目の取得')?['ID']})
![](https://assets.st-note.com/img/1707525315394-068ZEYEu7M.png?width=1200)
⑥画像列の情報を式で取得するので、アクション名『アイテムを取得』に変更し短くします。
※式が長くなるのを避けるためと、何のアクションか分かるように変更しました。
![](https://assets.st-note.com/img/1707525629031-Mjtg37zVQu.png?width=1200)
⑦アクションの追加で、データ操作の「作成」を追加します。アクション名を『Image』に変更し、下記式を追加します。これで画像列の情報がJSONに変換されるので、式で画像のJSONから値を抽出できるようになります。
json(body('アイテムを取得')?['d']?['Image'])
![](https://assets.st-note.com/img/1707526114548-uF2cJg1SQK.png?width=1200)
次にテストでフローを実行します。
⑧「保存」をクリックします。
![](https://assets.st-note.com/img/1707526449012-uvcrSxsHlE.png?width=1200)
⑨リストにアイテムを作成します。画像は3MB未満にしてください。投稿する画像にはサイズ制限があるためです。
※サイズの制限ですが、4MBにしていてエラーが頻発したので、3MBにしました。このフローを作成後に、ご自身で調整してください。
![](https://assets.st-note.com/img/1707526842040-EjNVpgRbgz.jpg?width=1200)
アイテムを作成した後、フローが実行したら実行履歴からImageのアクションを展開します。画像のようにJSON形式になっているので、outputs関数などを使って必要な値を取得していきます。
⑩Teams画像投稿フローの実行履歴から、成功したフローを展開します。Imageのアクションを展開して、JSON形式になっていることを確認します。
※次のアクションでは、/SiteAssets以降のパスをoutputs関数、slice関数、indexof関数を組み合わせて抽出します。
![](https://assets.st-note.com/img/1707527239028-CkTpIbt60i.png?width=1200)
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?