(著者:サイボウズ 後迫 孝)
サイボウズが主催しているkintoneの勉強会『kintone devCamp』では、オープンなIT勉強会・イベント支援サイト 『connpass』 を利用しています。 connpassには数多くのイベントが作成されており、とても便利に活用させていただいています。(詳細は後述)
今回は、connpass API を利用して検索時点の申し込み数や定員をkintoneに記録し、統計をとってみたいと思います。
利用したkintone API
- kintone.proxy
- kintone.Promise
- app.record.{index.create|edit}.submit
- app.record.{index.create|edit}.show
connpass
connpass は、人をつなぐ IT勉強会・イベント支援サイトというコンセプトで、IT系の勉強会に向けに活用されています。
こちら画像は、私たちが運営する『kintone devCamp』です。
こちらが、connpass の特徴です。
- 勉強会の申し込みページが無料で作れる
- TwitterやFacebookで連携して新着を確認できる
- Slideshareやホームページの発表資料をまとめられる
- 日単位のイベント統計ができる
- 参加者のためのiPhoneアプリがある
- Paypalを使った有料(前払い)イベントができる
ほか、たくさんの魅力あるサービスです。
kintoneでアプリを作る
アプリのフィールド
フィールドの種類 | フィールド名/フィールドコード | 注意事項 | 説明 |
---|---|---|---|
文字列(1行) | Keyword | 必須項目 | 入力されたキーワードを元に検索する。 |
日付 | Date | 省略可 | 入力された日を開催日として検索する。 |
テーブル | Table | connpassイベントを格納するテーブル。 | |
日時 | StartDateTime | テーブル内のフィールド | connpassイベントの開始日時。 |
日時 | EndDateTime | テーブル内のフィールド | connpassイベントの終了日時。 |
リッチテキスト | Title | テーブル内のフィールド |
connpassイベントのタイトル。 |
数値 | Accepted | テーブル内のフィールド | connpassイベントの参加者数。 |
数値 | Limit | テーブル内のフィールド | connpassイベントの定員。 |
文字列(1行) | SubTitle | テーブル内のフィールド | connpassイベントのタイトル。 イベントごとのグラフを作成したいため追加。 ※リッチテキストはグラフでグルーピングできない。 |
計算 | SumAccepted | 計算式:SUM(Accepted) | 参加者数の合計。 |
計算 | SumLimit | 計算式:SUM(Limit) | 定員の合計。 |
計算 | AcceptedRate | 計算式:SumAccepted/SumLimit*100 | 参加率。 |
数値 | EventCount | connpassイベント検索結果の件数。 |
※フィールド名とフィールドコードは同じ名称にしています。
フォームのイメージ
グラフのイメージ
たまったデータをkintoneのグラフで集計する。
プログラムと解説
プログラム
解説(ハマるポイント)
テーブル行への値設定
- 数値フィールドが空白の場合、グラフで正常に集計されないため「0」を指定しています。
- テーブルに値を追加する際には、値の他にフィールドタイプを指定(仕様)しています。
外部API実行後のPromiseを利用
- 外部APIの実行結果を反映するために、kintone.Promise を利用します。この関数を使うと良い利点です。
- XHRによる同期リクエストが非推奨(Firefox等ではコンソールに警告が出る)である
- IEでは全くネイティブでPromiseがサポートされていない
- kintone.Promise を使う際にには、最低限次の記述も付けましょう。
- then … 実行結果を処理する
- catch … 実行失敗時を処理する
まとめ
勉強会では集客が気になるところですので、このように公開されているAPIを利用し、kintoneに貯めることで、さまざまな確度からの分析ができると思います。
ただ、毎日手動で登録していたので、定期実行がkintoneで実現できると良いですね。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。