3.9K Views
May 20, 23
スライド概要
気ままに勉強会 #56 でLTさせて頂いた内容です。
https://kimamani.connpass.com/event/283783/
connpass API 便利なので是非使ってみてください!
Microsoft 365 , Power Platform ( Power Apps | Power Automate )とか
connpass API で 直近のイベントを 効率よくGetしてみた話 HTTP アクションでやってみた @flali_world 気ままに勉強会 #56 2023/05/20
PROFILE フロッキー https://www.frog-pod.com/ NAME : ふらり @ ROBO BOY Twitter : @flali_world Blog : https://flali.hatenablog.com/ Docs : https://www.docswell.com/user/fworlddocs @flali_world 2
はじめに 本資料に掲載されている内容は、 いつか人になりたいと思っている 🤖の空想上の出来事です。 内容間違っていたらごめんなさい。 @flali_world 3
connpass 便利ですよね https://connpass.com/ @flali_world 4
参加しているコミュニティの今後の開催予定がほしい 参加コミュニティの開催予定のイベントだけ一覧表示する機能がない… 引用 : 所属グループ一覧 - connpass @flali_world 5
そんなときは、connpass API イベントの検索と取得(Get)ができます。認証不要でシンプルなAPI。 引用 : APIリファレンス - connpass @flali_world 6
HTTP アクション を利用します。(Premiumコネクタ) リクエストはGETのみ series_id : グループID グループごとに固有の番号 order : ソート 2は開催日時順 count : 取得件数 100件 時間の関係上、詳しくはBlogで ym : イベント開催年月で検索 2023年5月なら 202305 フロー実行時の当月と翌月に なるようにしたい @flali_world 7
〈参考:〉connpass グループid(series_id)の一覧 series_id コミュニティ名 URL 2438Japan Microsoft 365 Users Group https://jpo365ug.connpass.com/ 3366Power BI 勉強会 https://powerbi.connpass.com/ 6192Japan Power Apps User Group https://powerapps.connpass.com/ 6423Japan Power Platform User Group 名古屋 https://paandflow.connpass.com/ 6950Japan Power Platform User Group https://power-platform.connpass.com/ 10313Japan M365 Dev User Group https://jpm365dev.connpass.com/ 10631おうじゃさんといっしょ https://oujasan-to-issho.connpass.com/ 10768Power BI Weekly News https://pp-weeklynews.connpass.com/ 11020Power Automate Desktop勉強会 https://powerautomatedesktop.connpass.com/ 12133気ままに勉強会 https://kimamani.connpass.com/ 12508Japan Power Platform Conference https://powerplatformconf.connpass.com/ 12607Japan Power Platform Game Builders https://jppgb.connpass.com/ 13103Power Apps Weekly News https://appsweeklynews.connpass.com/ 13301Learning Commons for Power Platform https://kuro.connpass.com/ 13340ふらっと純喫茶 https://flali.connpass.com/ 【Power Automate】connpass のイベントを取得する5(いろいろまとめる編) - ふらりのメモ書き (hatenablog.com) @flali_world 8
出力の本文(body)の自分がほしい部分を確認する データ全体 body('HTTP') 欲しいのは破線の “events” body('HTTP')?['events'] 他のイベントがあればこの後に続いている @flali_world 9
実行時以降のこれから開催したいものに絞る 現在時刻より後(大きい)イベントでフィルターします。 body('HTTP')?['events'] item()?['started_at'] addHours(utcNow(), 9) @flali_world 10
取得したデータの順番を変更します。 開催日時の降順で並んでいるので、Sort関数を使って昇順に変更します。 Sort(body('アレイのフィルター処理'),'started_at') @flali_world 11
必要なデータに絞りつつ、開始終了日時に変換します。 選択アクション内で、開始日時 – 終了日時 にフォーマットを変換しています。 item()['event_id'] item()['title'] item()['event_url'] item()['hash_tag'] concat(formatDateTime(addHours(item()['started_at'],9),'yyyy/mm/dd ddd HH:mm','ja-JP'),' - ',formatDateTime(addHours(item()['ended_at'],9),'yyyy/mm/dd ddd HH:mm','ja-JP')) @flali_world 12
オブジェクト({})の項目を1行テキストに変換しています。 改行コードを挟みながらオブジェクトを1行のテキストデータに変換しています。 body('選択') concat 関数で改行コードを挟みながら1行にします。 concat( item()['event_datetime’], decodeUriComponent('%0D%0A’), item()['title’], decodeUriComponent('%0D%0A’) item()['event_url’], decodeUriComponent('%0D%0A’), '#’, item()['hash_tag’] ) @flali_world 13
オブジェクト({})の項目を1行テキストに変換しています。 改行コードを挟みながらオブジェクトを1行のテキストデータに変換しています。 [{ title , event_url , event_datatime , hash_tag { }, title , event_url , event_datatime , hash_tag { }, title , event_url , event_datatime , hash_tag [“ title ⏎ event_url ⏎ event_datatime ⏎ hash_tag “, “ title ⏎ event_url ⏎ event_datatime ⏎ hash_tag “, “ title ⏎ event_url ⏎ event_datatime ⏎ hash_tag “] concat( item()['event_datetime’], decodeUriComponent('%0D%0A’), item()['title’], decodeUriComponent('%0D%0A’) item()['event_url’], decodeUriComponent('%0D%0A’), '#’, item()['hash_tag’] ) }] @flali_world 14
改行コード×2で結合します。 これでほしいデータが取れるようになりました。 body('選択_2') 改行コードで結合 ⏎ ⏎ decodeUriComponent('%0D%0A%0D%0A') @flali_world 15
実行 はい、イベントの一覧が取得できました。 ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ ⏎ @flali_world 16
さいごに
HTTP アクションの利用にはスタンドアロンライセンス 今回 Premium コネクタを利用していますので、Microsoft 365 の範囲ではでき ません。 価格 | Microsoft Power Automate @flali_world 18
HTTP アクションが難しい場合はコネクタあります! Miyakeさんが作成されました!(Premium コネクタ) connpass (独立発行者) - Connectors | Microsoft Learn @flali_world 19
Thank you !