【API】無料で利用できるconnpass APIでイベント情報を収集しよう
こんにちは。
自称)BizRobo!エンジニアのもりりんです。
今回は、「無料で利用できるconnpass APIでイベント情報を収集しよう」です。
3/28に開催されたBizRobi!CAPUS!!API編でご紹介したconnpassnのAPIでイベント情報をEXCELに抽出する方法をご紹介します。
APIの勉強になる良いサイトですので、APIの学習をしながら興味のあるイベントやセミナーに参加して、自身の知識やスキルを広げていきましょう!!
ではでは、はじめていきましょー
っと、その前に。
まずはお礼を。
3/28にBizRobo!CAMPUS!! API(初級)編に登壇させていただきました。
参加されたBizRoboerの皆さん、拙い説明であったかと思いますがありがとうございました。
1年半ほど前にも、「BizRobo! × Slack」というAPIに関するテーマで、RPAテクノロジーズ様とWebセミナーをさせていただきました。
録画データを改めて見ると、説明が下手くそだなーとか、2年前からそれほど成長してないなーと自分に落胆しましたが、敷居が高く感じるAPIを身近に感じて少しずつ勉強していただけると幸いです。
続編の有無はアンケート次第ということなので、あるといいですね。
おまけ資料の3つ目に記載している「無料で利用できるAPI3選」は、下記の3条件を元に勉強または利用しやすそうなものを私の独断でピックアップしています。
① 全て日本語でドキュメントが記載されている
② 見やすいサイトであること
③ APIまたは使用できるパラメータが複数あること
今回はその中から「connpassAPI」の使い方をご紹介します。
connpassとは?
connpassの説明は、公式ページの説明をお借りしています。
connpassは、エンジニアをつなぐ IT勉強会支援プラットフォームです。
見逃さない、集まりやすい
Twitter や Facebook と連携する と、友達がイベントを公開したり参加したときに、connpass がお知らせ。 興味のあるイベントを、もう見逃すことはありません。
イベントを育てよう
あなたが育てているイベントを グループ にして、歴史を追いやすく。 発表資料をまとめること もできます。 イベント統計 は、効果的なアクションのヒントに。
勉強会にピッタリ
企画・開発・運営は技術に真面目なエンジニア集団 Beproud。 我々も積極的にイベントに参加・主催しています。 多くのIT勉強会にも connpass を利用していただいており、安心してIT勉強会が開催できます。
BizRobo!では、ユーザ専用ポータルサイト、SNS、各種イベントをRPAテクノロジーズ社が直接手掛けているため、こういったイベントサイトには掲載されることはありませんが、PowerAutomateやUIPath、WinActorといったRPAツールはconnpassでのイベント開催が多くあります。 他にも、サーバ構築から機械学習/AI、LINE Developer等の各社サービスAPI活用方法という、様々なイベントが開催されています。
connpassに会員登録して、興味のあるセミナーに参加すると開催されるイベントメールが届きます。
しかし、毎回チェック出来る訳もなく流し見で忘れてしまったと行ったこともよくあるので、無償で公開されているAPIを利用して毎月のイベント情報を抽出するロボットをご紹介します。
ロボットの概要
【前提条件】
定期的なスケジュール実行の予定
例:月末に翌月のイベントスケジュールを取得する
シンプルに指定された「検索ワード」と「イベントの開催月」からconpassイのベント情報を降順で抽出し、EXCELに転記するロボットです。
弊社では、EXCELよりもスプレッドシートを利用する頻度が多いためSheetsAPIが使えるスプレッドシートを選択しますが、SheetsAPIは準備も含めると単純作業ではないためEXCELでご紹介します。
ロボットの全体は、以下です。
フローが長くなってしまったため、分割しています。
connpass APIの概要
connpassAPIは比較的シンプルな構成となっています。
今回は定期的なスケジュール実行を想定しているため、複数キーワードをAND条件、OR条件の2種類で検索できるようにし、期間指定はイベント開催年月のみの対応とします。
その他に、1度に取得できるイベント情報の上限数(=取得件数)、取得したイベント情報の表示方法は開催日の降順(=検索結果の表示順)とします。
今回のポイント
全て解説すると長くなるので、今回工夫したポイントのみ開設します。
- 検索条件をパラメータとして受け取る
- 検索キーワードを複数指定されてもWebサービス呼出アクションに入力できるようにする
- API実行結果の総件数全てを抽出できるようにループを利用する
- EXCELの書き込み行数をAPIの総取得件数に合わせる
検索条件をパラメータとして受け取る
MC等のスケジュールから実行パラメータを受け取る仕様にするため、検索条件を保持するタイプを作成してください。
必ず「パラメータとして利用」のチェックは入れておきましょう。
上記赤枠の「検索ワード」「保存先パス」「検索年月」「AND条件」は任意で可変更能です。
「検索ワード」「保存先パス」が未入力の場合は、ログを出力し終了します。
「検索年月」は、未入力であれば翌月を自動入力します。
検索キーワードを複数指定されてもWebサービス呼出アクションに入力できるようにする
こちらは、少しトリッキーな使い方をしています。
検索ワードには、カンマ区切りであれば複数条件を入力できる仕組みにしています。
しかし、 Webサービス呼出アクションのパラメータは1つずつ設定する必要があり、繰り返しを利用した設定はできません。
では、どうするのか?となりますが、Webサービス呼出アクションにはURLとパラメータの両方に検索条件が指定されると、自動で結合してくれる仕様があります。
上記の画像のようにURLに直接検索条件を入力し、パラメータも入力した状態でアクションを実行すると、2つの条件が上手く結合されたURLに加工されます。
日本語もエンコードされているので、文句なしですね。
今回はこの仕様を利用し、 検索ワードは事前にURLに結合できる形式に加工します。
検索条件.typeにAND検索用のBoolean型変数を用意し、設定値に応じて「keyword=**」 or 「keyword_or=**」 に切り替えます。
API実行結果の総件数全てを抽出できるようにループを利用する
APIの実行結果は、各社のAPIドキュメントによって異なります。
connpassでは、以下のように定義されています。
上記の赤枠を利用することで、APIの検索結果を全て取得するまで実行するように制御できます。
ループ制御のみ抜粋すると以下のようになります。
全件取得のために利用するパラメータは、「start」「count」となります。
「count」には、設定できる上限値を確認の上、任意の数値を設定してください。(今回は、10)
「start」は、グローバル変数を用意し、1回目は1から開始し回数を重ねる度に「count」を加算されるようにステップを作成します。(例:1 → 11 → 21 ...)
また、無料で利用できるAPIは各社サービスの努力によって提供されているものですので、連続して実行する際は負荷をかけないように数秒開けて実行しましょう。
EXCELの書き込み行数をAPIの総取得件数に合わせる
最後はAPIの実行結果をEXCELに反映する箇所です。
素直に作成した場合は、挿入行を管理するグローバル変数を用意し、行を追加する度に+1していくことで問題ありません。
今回は、管理用のグローバル変数を用いずに再現してみます。
利用するデータは、APIパラメータの「開始位置を管理している」変数、JSONデータをループ回数を取得する「iteration()」関数です。
APIの開始位置パラメータは、APIドキュメントのパラメータに記載されている「start」の備考に従い1からスタートします。
BizRobo!のループ回数を取得する関数でおなじみの「iteration()」では、ループ回数が取得できるため、開始位置+ループ回数で抽出できたデータ数を算出できます。
最後に、EXCELファインダーを扱う際のクセを考慮すれば、完成です。
今回のクセは、EXCELの1行目は、オフセットを0にすることが必要なため、変数で再現する時も「開始位置+iteration()」が0になるように-2で調整します。
※DSの「iteration()」関数は、1からカウントされます。(※ちなみに、DAは0からカウント)
最後に
CAMPUS!!のおまけ資料に乗せていたAPIのご紹介でしたが、いかがでしたでしょうか。
自分で実践してみることでドキュメントの読み方やAPIの使い方を学べるため、日本語で作成されているAPIを利用して是非勉強してみてください。
慣れてくるとGoogleやFacebook、各種チャットツールのAPIドキュメントも読む&利用ができるようになるので、徐々にステップを踏んでいきましょう。
また、APIで情報収集する場合、1回で取得できないことを考慮することも必要です。
その場合は、ループを活用することが多々あるので試してみてください。
今回も最後までお読みいただきありがとうございました。
また、次回をお楽しみに!
<RPAの導入につきまして>
本Blogは、お役に立ちましたでしょうか?
RPAは、一般的な業務システムとは異なり、PoCを実施し、導入・運用開始で終わりでははありません。
導入時点からようやくスタートです。
業務効率化、人員最適化等の目標に応じた計画策定や人員配置、自動化ロボットの開発・運用といったPDCAサイクルが必要です。
弊社では、貴社の課題に適した自動化プランのご提案や開発者育成研修も実施し、貴社と並走したサポートをご提供いたします。
お気軽にお問い合わせください。
BizRobo!や弊社サポートについて詳しくはこちら >>> サービス紹介 - BizRobo! (自動化ツール)
■その他のBlog
- BizRobo! CAMPUS!!第11回~DA編~に参加しました!
- SSSAPIを使ってスプレッドシートを使ってみよう
- はじめてのConnector開発
- Box連携 〜ロボット化に必要なAPIを検討、仕様確認〜
- BizRobo!Campus!!第2回~繰り返し編~に参加しました!
- BizRobo!CAMPUS!!第10回~正規表現編 続編~に参加しました!
- 【Tips】DAのコマンド実行が終わるまで待機させる方法
- 【Tips】ZIPファイルをコマンドライン実行で展開する
- 【API】GoogleDriveAPIで共有フォルダを参照する
- 【API】無料で利用できるconnpass APIでイベント情報を収集しよう