この投稿は 2021/11/16 に実施したライブ配信の参考情報まとめです。
珍しくランチタイム勉強会 - Power Automate - YouTube
基本 : SharePointへのHTTP要求アクション
Power Automate の SharePoint コネクターでは、SharePoint上の情報を読み書きする豊富なアクションが提供されていますが、これらのアクションにはないような操作も SharePoint REST API には含まれています。
『SharePointへのHTTP要求』のアクションは、このような"アクションで提供されていないREST APIの操作"を実現できます。
SharePoint REST API に関する概要は以下のDocsを紐解くのが遠回りなようで近道だと思います。
最も簡単なREST APIの操作は、以下のURLにGETリクエストを送るものでしょう。これによって、指定された名前 (List Title 部分)のリストに関する情報を取得できます。
https://{site_url}/_api/web/lists/GetByTitle('List Title')
『SharePointへのHTTP要求』のアクションの中では、サイトURLはドロップダウンで選択することもできますし、カスタム値を指定することも可能です。
例えば、SharePointリストの画像列 ("ハイパーリンクまたは画像"ではない方)は、まだ通常のアクションでは読み書きできない列ですが、REST APIで操作することが可能です。
また、定期的に他のリストからSharePointリストに項目を同期するようなフローでは、$batch
の操作が有効ですが、これも『SharePointへのHTTP要求』アクションで実現できます。
すこし応用 : 一覧されていないURLへのリクエストなど
リクエストを送るURLはカスタム値も許容されます。これを利用して、SharePoint Admin Center ('https://xxxx-admin.sharepoint.com`) にもHTTP要求を送ることができます。
残念ながら、通常のアクションでテナント内のサイト一覧を取得するという操作は提供されていませんが、 Power Automateでこれを取得したい場合にも『SharePointへのHTTP要求』を活用することで実現できます。
上図にあるように、サイトアドレスにSharePoint Admin CenterのURLを、Uriに以下をセットすることで、テナント内のサイト一覧が取得されます。
/_api/web/lists/getbytitle('DO_NOT_DELETE_SPLIST_TENANTADMIN_AGGREGATED_SITECOLLECTIONS')/items
サイト数が多い場合には、ページングされていて、応答本文の中にnext urlが入ってきます。次のページを取得するときにはこのURLを指定することになります。
サイト一覧を取得する以外にも、最近提供されたハブサイト間の関連付け(SharePoint hub-to-hub association) の設定も『SharePointへのHTTP要求』アクションで実現できます。
すごく応用:サポートされていないAPIを利用する
『SharePointへのHTTP要求』では不思議なことにSharePoint以外のサービスにもHTTP要求を送信することができます。
現在までに発見されているサービスは Teams と Forms です。特にこれらのサービスでドキュメント化されていないようなAPIの実行ができるということで、皆さん色々試されています。
※注意:この操作はサポート外です。そもそも実行しようとしているAPIもサポートされていないものですが、アクションの使い方としても裏口ですので自己責任で。
Formsへのリクエスト
Formsの操作はかなりなんでもできる印象です。サーベイの作成はもちろん、結果の取得、サーベイの詳細情報、また回答もできます。
Microsoft Forms Get ALL Response Details Downloaded via Power Automate
Populate Forms Survey from Template using Power Automate (Github)
Teamsへのリクエスト
TeamsはFormsほどなんでもできるわけではなさそうです。許可されていない操作ですエラーが一部返ってくることを確認しています。それでも有効そうなものとしては以下の2つがよさそうです。
Teams Status Update via Power Automate
Post a teams message with Tag mention from Power Automate
おわり
Power Automateで提供されていないSharePoint REST APIの操作を実行するために利用される『SharePointへのHTTP要求』ですが、試してみるとその利用幅は結構広いかなと思います。 これまでは「アクションがない!」→「Graph APIだ!」 となっていたところで、新しいオプションになるかもしれないです。(サポート外ですが)
皆さんもいろいろ試してみてください。