【コラム】三島正裕のOffice365徹底活用 PowerApps編 ~SharePoint用のRSSをPower Appsで作成してみよう~
- 2020/9/10

こんにちは!クラウドビジネス担当の三島です。Office365徹底活用コラムPower Apps編ということで、今回はSharePoint用のRSSをPower Appsで作成してみたいと思います。SharePointでサイトを作成した際に、RSSのWebパーツを使用することがあるのですが、もっとコンパクトなWebパーツが欲しいなと思いましたので今回Power Appsで作成してみることにしました。15分ほどで作成出来る小さなアプリですので、興味が湧きましたらぜひ皆さんも試してみて下さいね。

今回もキャンパスアプリで作成します。Power Appsを起動して「アプリ」から「+新しいアプリの作成」を選択。「キャンパス」から「タブレットレイアウト」を選択します。サイズは任意でOKなのですが、当コラムではSharePoint用のWebパーツとして使用しますので、少し小さめに設定しました。「ファイル」から「設定」を選択。サイズをカスタムにして、400×400程度にしております。

2.RSSを取得する仕組みを作成する
最初にRSSのコネクタを追加します。これはデータソースから「RSS」を選択するだけでOKです。続いてRSSを取得するためのアイコンを作成します。アイコンは「アイコン」メニューから選択します。今回は「再読み込み」のアイコンを選択しました。

アイコンを押した時の動作を設定します。追加したアイコンのプロパティ「OnSelect」に変数を作成する関数Setを設定し、初期値としてRSSのURLを設定します。下記にサンプルを用意しましたので、コピーをしてプロパティに張り付けてみて下さい。サンプルは当社「SI事例サイト」のURLなのですが、皆様が試される際はお好みのURLを張り付けてみて下さいね。
Set(SetRSS,"https://www.si-jirei.jp/feed/");

取得したRSSを一時的に保存するためのコレクションを作成します。コレクション名は「RSS_List1」とします。RSSを取得するには「RSS.ListFeedItems」を使用します。カッコの中にRSSフィードのURLを指定すると情報を取得することが出来ます。下記内容をOnSelectのプロパティに追加して、アイコンをクリックしてみて下さい。アプリのプレビューはF5キーで実行出来ます。
ClearCollect(RSS_List1,
SortByColumns(RSS.ListFeedItems(SetRSS),
"publishDate",Descending));

アイコンをクリックした後、「ファイル」メニューより「コレクション」を確認すると、「RSS_List1」に当社SI事例サイトの情報がセットされていることが確認出来るはずです。

ところが、内容を確認してみると、他と同じ「primaryLink」を持つレコードがあることがわかると思います。RSSでは更新された過去の情報も送られてくるようですので、当アプリではこれは除外して、最新の情報だけにしたいと思います。
これを解決するには「RSS_List2」というコレクションを作成し、そこに「primaryLink」をユニークにした列を作成しておきます。Distinct関数を使うとユニークにすることが出来ます。下記に内容をコピーして、プロパティOnSelectに追加してみてください。
ClearCollect(RSS_List2,Distinct(RSS.ListFeedItems(SetRSS),primaryLink));

「再読み込み」のアイコンをクリックするとRSS_List2にユニークとなった「primaryLink」がセットされていることが確認出来るはずです。

3.画面にRSSを表示する
画面にRSSを表示するにはギャラリーを使用します。挿入より「横方向(空)」のギャラリーを選択し、データソースは「RSS_List2」を選びます。

続いて、ギャラリーにRSSを表示するためのテキストラベルを追加します。ラベルのプロパティTextには下記内容をセットします。Lookup関数でRSS_List2のprimaryLinkに紐づくデータをRSS_List1から取得しています。取得に成功していると、RSSが画面に表示されるはずです。
LookUp(RSS_List1,primaryLink=ThisItem.Result).title

4.カテゴリを表示する
RSSに含まれるカテゴリを表示してみます。カテゴリは「列categories」にコレクションでセットされています。複数行のレコードでセットされていますので、各レコードをConcat関数で間にスペースを挟みながら結合して1つのテキストにします。新規にテキストラベルを作成し、下記内容を張り付けてみてください。

5.リンクを作成する
ギャラリー内のテキストにリンクを作成します。当アプリでは「アイコン四角形」を透明にして被せ、そのアイコンをクリックしたときにリンク先が開くよう設定をしています。リンク先を開くにはLaunch関数を使います。URLは「RSS_List2」にセットされた列「primaryLink」が使えますので、ThisItem.Resultを指定して表示させます。下記内容をアイコンのプロパティ「OnSelect」にセットしてクリックをしてみて下さい。
Launch(ThisItem.Result)
下図のようにリンク先が開けば成功です。

6.アプリ起動時の設定をする
アプリ起動時にRSSを取得するよう、「App」のプロパティ「OnStart」を設定します。設定内容は最初に設定した「再読み込み」アイコンと同じ内容をセットして下さい。

7.SharePointサイトにアプリを張り付ける
SharePointサイトにアプリを張り付けてみます。SharePointの編集画面でWebパーツを追加する際に「Power Apps」のアイコンがありますので選択をして下さい。アプリを設定するには、Power Appsアプリの詳細画面に表示されているWebリンクか、アプリIDをセットします。SharePoint上に作成したアプリが表示出来ていれば成功です。

8.おわりに
今回はRSSリーダーを作成してみましたが如何でしたでしょうか。SharePointに元々ある機能ですので、わざわざPower Appsで作らなくてもと思いますが、レイアウトを自由に変更したり、受け取った情報のカテゴリ別に特定のメンバーにアラートを送ることが出来たりなど、アプリにすることで様々な応用が出来ると思いますので、ぜひ皆様も試してみて下さいね。
それでは次回もお楽しみに。
本コラムは2020年9月時点での情報を基に作成しています。