HomeRPAブログページBizRobo!活用例【API】無料で利用できるconnpass APIでイベント情報を収集しよう

BizRobo!ブログ

 こんにちは。

 自称)BizRobo!エンジニアのもりりんです。

 今回は、「無料で利用できるconnpass APIでイベント情報を収集しよう」です。

 3/28に開催されたBizRobi!CAPUS!!API編でご紹介したconnpassnのAPIでイベント情報をEXCELに抽出する方法をご紹介します。
 APIの勉強になる良いサイトですので、APIの学習をしながら興味のあるイベントやセミナーに参加して、自身の知識やスキルを広げていきましょう!!

 

ではでは、はじめていきましょー

 

 っと、その前に。
まずはお礼を。

お手紙ねこさん

 
 3/28にBizRobo!CAMPUS!! API(初級)編に登壇させていただきました。
 参加されたBizRoboerの皆さん、拙い説明であったかと思いますがありがとうございました。

CAMPUSサムネイル

 1年半ほど前にも、「BizRobo! × Slack」というAPIに関するテーマで、RPAテクノロジーズ様とWebセミナーをさせていただきました。

旧セミナー

 録画データを改めて見ると、説明が下手くそだなーとか、2年前からそれほど成長してないなーと自分に落胆しましたが、敷居が高く感じるAPIを身近に感じて少しずつ勉強していただけると幸いです。
 続編の有無はアンケート次第ということなので、あるといいですね。

 おまけ資料の3つ目に記載している「無料で利用できるAPI3選」は、下記の3条件を元に勉強または利用しやすそうなものを私の独断でピックアップしています。

 ① 全て日本語でドキュメントが記載されている

 ② 見やすいサイトであること

 ③ APIまたは使用できるパラメータが複数あること 

 今回はその中から「connpassAPI」の使い方をご紹介します。

 

 connpassとは? 

 connpassの説明は、公式ページの説明をお借りしています。

 connpassは、エンジニアをつなぐ IT勉強会支援プラットフォームです。
 
 見逃さない、集まりやすい
 Twitter や Facebook と連携する と、友達がイベントを公開したり参加したときに、connpass がお知らせ。 興味のあるイベントを、もう見逃すことはありません。
 
 イベントを育てよう
 あなたが育てているイベントを グループ にして、歴史を追いやすく。 発表資料をまとめること もできます。 イベント統計 は、効果的なアクションのヒントに。
 
 勉強会にピッタリ
 企画・開発・運営は技術に真面目なエンジニア集団 Beproud。 我々も積極的にイベントに参加・主催しています。 多くのIT勉強会にも connpass を利用していただいており、安心してIT勉強会が開催できます。

 サイト:https://connpass.com/

 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度に取得できるイベント情報の上限数(=取得件数)、取得したイベント情報の表示方法は開催日の降順(=検索結果の表示順)とします。

connpassパラメータ

 

 今回のポイント 

 全て解説すると長くなるので、今回工夫したポイントのみ開設します。

  1.  検索条件をパラメータとして受け取る
  2. 検索キーワードを複数指定されてもWebサービス呼出アクションに入力できるようにする
  3. API実行結果の総件数全てを抽出できるようにループを利用する
  4. EXCELの書き込み行数をAPIの総取得件数に合わせる

 

 検索条件をパラメータとして受け取る 

 MC等のスケジュールから実行パラメータを受け取る仕様にするため、検索条件を保持するタイプを作成してください。
 必ず「パラメータとして利用」のチェックは入れておきましょう。

検索条件3

 上記赤枠の「検索ワード」「保存先パス」「検索年月」「AND条件」は任意で可変更能です。
「検索ワード」「保存先パス」が未入力の場合は、ログを出力し終了します。
 「検索年月」は、未入力であれば翌月を自動入力します。

その1

 

 検索キーワードを複数指定されてもWebサービス呼出アクションに入力できるようにする 

 こちらは、少しトリッキーな使い方をしています。
 検索ワードには、カンマ区切りであれば複数条件を入力できる仕組みにしています。

API条件

しかし、 Webサービス呼出アクションのパラメータは1つずつ設定する必要があり、繰り返しを利用した設定はできません。
 では、どうするのか?となりますが、Webサービス呼出アクションにはURLとパラメータの両方に検索条件が指定されると、自動で結合してくれる仕様があります。

API URL

 上記の画像のようにURLに直接検索条件を入力し、パラメータも入力した状態でアクションを実行すると、2つの条件が上手く結合されたURLに加工されます。
 日本語もエンコードされているので、文句なしですね。

URL結果

 今回はこの仕様を利用し、 検索ワードは事前にURLに結合できる形式に加工します。
 検索条件.typeにAND検索用のBoolean型変数を用意し、設定値に応じて「keyword=**」 or 「keyword_or=**」 に切り替えます。

検索ワード

 

 API実行結果の総件数全てを抽出できるようにループを利用する 

 APIの実行結果は、各社のAPIドキュメントによって異なります。
 connpassでは、以下のように定義されています。 

APIレスポンス

 上記の赤枠を利用することで、APIの検索結果を全て取得するまで実行するように制御できます。
 ループ制御のみ抜粋すると以下のようになります。

ループ制御

 全件取得のために利用するパラメータは、「start」「count」となります。
 「count」には、設定できる上限値を確認の上、任意の数値を設定してください。(今回は、10)
 「start」は、グローバル変数を用意し、1回目は1から開始し回数を重ねる度に「count」を加算されるようにステップを作成します。(例:1 → 11 → 21 ...) 

 また、無料で利用できるAPIは各社サービスの努力によって提供されているものですので、連続して実行する際は負荷をかけないように数秒開けて実行しましょう。

 EXCELの書き込み行数をAPIの総取得件数に合わせる 

 最後はAPIの実行結果をEXCELに反映する箇所です。
 素直に作成した場合は、挿入行を管理するグローバル変数を用意し、行を追加する度に+1していくことで問題ありません。

EXCEL

 今回は、管理用のグローバル変数を用いずに再現してみます。
 利用するデータは、APIパラメータの「開始位置を管理している」変数、JSONデータをループ回数を取得する「iteration()」関数です。

 APIの開始位置パラメータは、APIドキュメントのパラメータに記載されている「start」の備考に従い1からスタートします。
 BizRobo!のループ回数を取得する関数でおなじみの「iteration()」では、ループ回数が取得できるため、開始位置+ループ回数で抽出できたデータ数が算出できます。

 最後に、EXCELファインダーを扱う際のクセを考慮すれば、完成です。
 今回のクセは、EXCELの1行目は、オフセットを0にすることが必要なため、変数で再現する時も「開始位置+iteration()」が0になるように-2で調整します。
 ※「iteration()」は、1からカウントされます。

ファインダー

 

 最後に 

 CAMPUS!!のおまけ資料に乗せていたAPIのご紹介でしたが、いかがでしたでしょうか。

 自分で実践してみることで、ドキュメントの読み方やAPIの使い方を学べるので、日本語で作成されているAPIを利用して、是非勉強してみてください。
 慣れてくると、GoogleやFacebook、各種チャットツールのAPIドキュメントも読む&利用ができるようになるので、徐々にステップを踏んでいきましょう。
 また、APIで情報収集する場合、1回で取得できないことを考慮することも必要です。
 その場合は、ループを活用することが多々あるので試してみてください。

 今回も最後までお読みいただきありがとうございました。
 また、次回をお楽しみに!

大阪本社
〒541-0056
大阪市中央区久太郎町2-2-7 山口興産堺筋ビル3階  アクセスマップ
TEL:06-6266-0440   FAX:06-6266-0450