AutomateのRSSおすすめカスタマイズ」でLT登壇しました。AutomateのRSSおすすめカスタマイズ」でLT登壇しました。Automate(クラウドフロー)でRSSを定期的に取得しTeamsへ通知する実装サンプルについて記事にいたしました。RPACommunityさんでLT登壇させていただいた際の内容という感じですが、実装部分の記事を作っていなかったのであらためて記事にしています。併せて土日は通知しない場合の調整について追加しています。以前の登壇資料など以前LT登壇した際の内容は以下記事でご紹介しています。AutomateのRSSおすすめカスタマイズ」でLT登壇しました。本記事では完成形を作成するサンプルとしています。→作成者をお偉い人に変更する(ネタバレ→詳細はスライドご確認ください)前提:Teamsにある標準のRSS機能そもそもTeamsには標準でRSSコネクタがあり簡単にTeamsへの追加は可能です。ダイジェストの頻度なども調整可能です。今回ご紹介する実装とは以下が異なります。これらを対応したい場合のサンプルという感じです。Automateを使った定期的RSSの通知フロー(翻訳あり)を作成していきます。一覧画面で「テンプレート」を選択します。活用されていないかもしれませんが、結構種類あります。(おおむね英語版ですが)検索に「RSS」を入力してフィルターをかけ以下を選択してください。選択すると以下のような概要、認証確認する画面があるので、続行をクリックします。※Notificationアクションは後々Teams投稿へ変更します。実装の参考にもなるためサンプルではテンプレートを使っています。以下のようなフローが作成されると思います。現在だとモダンのエディターですね。(慣れてないですが)このままモダンで調整箇所を説明していきます。トリガーでスケジュールを調整するトリガーを開いて実行するタイミングを調整します。初期値では毎日になっていますが、本サンプルでは月~金までの通知に調整します。※月~金の場合は後述するRSSの取得期間の調整が必要です。Timeはこの日時以降としたい場合に指定、指定なしの場合は空でよいRSSのURLを指定する現状未入力のためエラーとなっています。こちらにRSSFeedのURLを指定します。BlogのRSSFeedを指定します。おおむねトップURLに/feedとなっているかと思います。Automateについては新しい様式となり、URLも変わっていました。以前のURLを開いた場合はリダイレクトされて新しいURLのページ表示されますが、Feed取得については以前のURLを指定したままだと取ってこれないようです!以下、現在のURLを記載しています。変更を確認されたら対象URLの切り替えてください。BIは「https://powerbi.microsoft.com/en-us/blog/feed/」です。※Apps、Automate同様に変更の可能性ありfeedにアクセスすると上記のようにRSSの情報ページとなるフローに戻り、RSSのURLに指定します。他のパラメータはそのままで問題ないと思います。TIPS以降、適宜保存しながらフローを修正していってください。フィルターアクションを調整する(月~金対応)次のアクションでフィルターしている箇所があります。簡単には数式でpublishDateが今の時刻より-2日以降のデータを対象にしています。トリガーのスケジュールを毎日としている場合そのままで問題ありません。今回月~金に動作させるため、そのままだと金曜日の取得後~土曜日の更新が反映されません。そのため以下のように数式を変更します。dayOfWeek関数で曜日を判定し、1→月曜日の場合は‐4、それ以外は‐2という内容です。-2))翻訳アクションを追加する今回は英語記事を取って来ているのでこのアクションを入れています。日本語の記事の場合は不要です。以下のCompose(作成アクション)の中身は以下のようになっています。この下に翻訳アクションを追加します。V2」の「テキストの翻訳」を追加します。パラメータは以下のようにします。テキストの部分は上記Composeで使われている動的コンテンツ「Title」です。これをコピーして貼り付けてもOKですし、この記事の以下を数式で張り付けるでもOKです。リクエストまで無料で使えます。詳細は公式をご確認ください。続いて、概要(Summary)用の翻訳アクションも追加して設定します。Summaryとなる変更なので、コピーして貼り付けての一部修正が手早いと思います。→コピーされたアクションが追加されます。追加されたアクションの以下を修正します。翻訳アクションが追加出来たら順番を入れ替え2つの翻訳アクションが追加出来たら順番を入れ替えます。以下のように先に翻訳アクションを持ってきてComposeをその次に移動します。ComposeアクションのTitleとSummaryを翻訳後の結果に差し替え次にComposeアクションのTitleとSummaryを翻訳後の結果に差し替えます。以下のように元々titleが入っている部分をタイトル用の翻訳されたテキストへ、summaryをSummary用の翻訳されたテキストへ変更します。上記のHTML書式について、そのままでもいいですが、変更したければ調整が可能です。自分の場合は日付が入っていない点や上に日付、次にタイトルとしたかった点などを調整しました。一応調整例としてサンプルを上げておきます。href=”@{items(‘Compose_the_links_for_each_blog_post’)?[‘primaryLink’]}”>@{body(‘テキストの翻訳’)}</a></h5></td></tr><tr><td>@{body(‘テキストの翻訳-Summary’)}</td></tr>調整前後のサンプルですチャネルのひとつのスレッドへ返信する実装にする上記でFeedの取得、フィルター、翻訳まで完了です。次からTeamsへ投稿する実装を行います。email)」は使わないのでひとまず削除します。事前にTeamsへ投稿用のスレッドを作成するそのままチャネルへ投稿する場合であれば、「チャットまたはチャネルでメッセージを投稿する」アクションで構いませんが、その場合、以下のように投稿のたびにひとつのスレッドが出来ます。ひとつのチャネル内にこのRSSのみとするのであればこちらでよいと思います。BIなどそれぞれ投稿したい。そのため、それぞれを一つのスレッドにまとめたい場合の実装となります。「チャットまたはチャネルでメッセージを投稿する」の場合、以下のように投稿単位で日々スレッドが出来ます。ひとつのRSS専用チャネルにする場合はこちらでよいと思います。※詳細は登壇記事などご参考ください。普通に投稿するアクションの場合はスレッドが都度作成される投稿したいチャネルに以下のようにタイトルを付けて投稿します。その投稿のリンクをコピーします。コピーしたリンクをテキストに張り付け、以下のうち「parentMessageId=」の後から&までの数値を控えます。以下で赤くしている部分です。これが作成した投稿のIDとなっています。チャネル内のメッセージで応答しますを追加するフロー編集画面へ戻り、Notificationアクションがあった場所へ以下アクションを追加します。「チャネル内のメッセージで応答します」チャネルへ応答アクションの内容を調整する上記で追加したアクションを以下の概要で調整します。「User」で選択可能です。bot」としてみます。MessageIDは上記で控えたIDを指定し、その他はプルダウンで指定が可能です。メッセージには作成アクションの結果をTableタグで囲ったものを指定します。上記でこのフローの実装が完了です。テスト実行して動作を確認しましょう。その際に一旦取得対象を調整して以前のデータも取ってくるようにします。実装上ではフィルターアクションで前日(月曜の場合は金土以降)でー4、‐2で調整していましたが、この範囲に投稿がなかった場合は取れませんし、実装時点でRSSの持っている情報(数十件位?)を一気に取ってきたいので日付を調整します。例では‐100としてます。eachではFliterした結果から15件までのループとされています。そのため一気に取れても15件までです。(RSSの保持も大体それくらいと思いますが)それ以上必要な場合はこの部分も増やすなど調整ください。謎の不具合?投稿メッセージがうまく保存されないと、書きながら試してみたところ、なぜかテーブル形式にならない。見たら最後のチャットへの応答アクションのメッセージが何度いれても以下のように変わってしまいます。保存して一旦開きなおしたりしても変わってしまう。クラシックデザイナーに変更して再保存したらそのまま保存できました。(ので深追いはしてない)以下のような感じで10件まで取れていました。NOTE上記動作を確認したら、フィルターの日付部分は元に戻すのを忘れないようにしましょう。しないと毎回これくらいが追加されてしまいます。botでの通知としました。通知は自分にも来る点はいいですね。後システムがやっている感は増します。botのメッセージを自分が削除できない点がテストなどしていてうっとおしいですね。ユーザーにした場合は基本作成者(接続で使用しているユーザー)として送信されます。この場合のデメリットは自分に通知が来ない。自分が表に出てる感が増す。RPACommunityさんのLT登壇時はここを解消するためにえらい人に変更して自分にも通知が来るし、えらい人が送っている感あるのでメンバーが見る率高まる。えらい人も参加している感じになっていいことが多いとしてましたwこの辺はケースバイケースで調整という感じですかね。おわりにというわけで今回はひさしぶりにクラウドフローの記事でした。実装自体は相当前(3年くらい?)にやった内容で、かつ、1年前に登壇した際に話した内容なので新しい情報感は皆無ですが、実装方法はブログにしたほうが分かりやすいかと思い記事にしてみました。Pagesも作って是非最新情報を取得・共有いただくのに役立てていただければと思います。その他ブログなどのRSSを取得にもお役立てください。以前LT登壇した際の内容は以下記事でご紹介しています。AutomateのRSSおすすめカスタマイズ」でLT登壇しました。itこの記事は役に立ちましたか?もし参考になりましたら、下記のボタンで教えてください。Automate技術者へと転身。qiitaや自社HPでも技術ブログを書いていました。12月1日担当分の記事です。Appsというところをざっくりと記事にしました。この後の記事も楽しみですねー。コピー機能の作り方Tipsこちらの記事は現状Qiita記事へのリンクとなります。リンク先よりご確認ください。AutomateのRSSおすすめカスタマイズ」でLT登壇しました。その2POINTこちらの記事はQiita記事のリライト版です。