CData Software Blog

クラウド連携のCData Software の技術ブログです。

Zoom のミーティングデータを Power BI で可視化:CData API Driver for ODBC

f:id:sugimomoto:20200914095230p:plain

こんにちは。CData Software Japan リードエンジニアの杉本です。

以前の記事で Zoom API について解説したところ、アクセス数的にかなり好評でした! やはり、Zoom APIを活用して、連携や分析を行うニーズはこの状況において大きく増しているようですね。

www.cdatablog.jp

今回はそんな Zoom APIを使った活用例の一つとして、Power BI から Zoom API に接続し、ミーティングデータを可視化する方法を紹介したいと思います。

実現方法

Power BI から Zoom API への接続には CData で公開している API Drver for ODBC と Zoom API Profile を使用します。

API Driverは各種APIに接続するためのProfileとセットで使うことで、CData Driverを経由して様々なAPIに接続できるようになる Driverです。

https://www.cdata.com/jp/apidriver/

f:id:sugimomoto:20200914094436p:plain

現在 100種類近くのAPI Profileを公開しており、その中に今回取り上げるZoom APIも含まれています。

https://www.cdata.com/jp/apidriver/#profiles

f:id:sugimomoto:20200914094446p:plain

なお、今回はPower BIを使いましたが、CData Driverは様々なBIツールから利用できるので、以下にあるようなお好みのBIツールで試すことができます。

https://www.cdata.com/jp/kb/tech/rest-article-list.rst

手順

それでは手順を解説していきましょう。

必要なもの

Power BIやZoom アカウントは予め取得しておいてください。

  • Zoom アカウント
  • Power BI Desktop
  • CData API ODBC Driver
  • CData API Driver 用 Zoom API Profile

Zoom API Profile を使うための準備

まず、Zoom API に接続するためのOAuth用の設定を行います。詳しくは こちら のヘルプにも記載しています。

以下のページに移動し、Zoom API用のOAuthアプリを作成します。

https://marketplace.zoom.us/develop/create

f:id:sugimomoto:20200914094708p:plain

今回は社内利用の想定のため、Account-Level appでマーケットプレイスには公開しない、以下の設定で作成しました。

f:id:sugimomoto:20200914094715p:plain

アプリを作成すると、Client Id と Client Secretが取得できるので、これを控えておきます。

デスクトップマシンから接続するので、Redirect URL for OAuthとWhitelist URLに「http://localhost:33333」と登録します。

f:id:sugimomoto:20200914094720p:plain

あとはアプリのスコープとして以下の5つを設定すれば準備完了です。

  • account:read:admin
  • meeting:read:admin
  • user:read:admin
  • webinar:read:admin
  • account:master

f:id:sugimomoto:20200914094726p:plain

API Driver と Zoom API Profileのダウンロード・インストール

続いて以下のページから「API Driver for ODBC」と「Zoom API Profile」をダウンロードします。

https://www.cdata.com/jp/apidriver/

f:id:sugimomoto:20200914094731p:plain

f:id:sugimomoto:20200914094736p:plain

API Driver for ODBC」のインストーラーを実行して、セットアップが完了すると、以下のような接続設定画面が表示されるので、必要な値を設定します。

  • Profile:ダウンロードしたZoom API Profie「Zoom.apip」のファイルパスを入力します。
  • Callback URL:アプリのRedirect URLに登録した「http://localhost:33333」を指定します。
  • Initiate OAuth:GETANDREFRESHを指定します。
  • OAuth Client Id:Zoom OAuthアプリのClient Idを入力します。
  • OAuth Client Secret:Zoom OAuthアプリのClient Secret を入力します。

f:id:sugimomoto:20200914094741p:plain

すべての値を入力後、「接続のテスト」ボタンをクリックすると、ブラウザが立ち上がり、Zoom APIアクセス許可を求める画面が表示されるので、内容を確認の上「認可」をクリックしましょう。

f:id:sugimomoto:20200914094746p:plain

以下のように接続テストに成功したメッセージが表示されればOKです。

f:id:sugimomoto:20200914094752p:plain

Power BI から Zoom APIに接続する

準備が整ったので、Power BIからZoom APIに接続してみます。

Power BI Desktopを立ち上げて、「データを取得」をクリックし

f:id:sugimomoto:20200914094756p:plain

一覧の中からODBCを選択します。

f:id:sugimomoto:20200914094801p:plain

先程登録したODBC DSNを選択(デフォルトはCData API Sourceですが、私の環境では任意の名称で作成していました)して、

f:id:sugimomoto:20200914094806p:plain

Windowsの現在の資格情報で接続を行います。

f:id:sugimomoto:20200914094810p:plain

接続したら、早速ミーティングデータを取得したいところですが、Zoomのミーティングを取得するためには、まず紐付いているユーザーのIDを明らかにする必要があります。

以下からUsersを選択して、データを取り込み、UsersのIDを確認しましょう。

f:id:sugimomoto:20200914094820p:plain

ミーティングデータの取得

続いて実際のミーティングデータを取得します。

再度ODBCからデータの取得を選択肢、今度はSQL ステートメントで以下のように取得するためのクエリを記述します。

SELECT * FROM Meetings WHERE UserId = 'XXXXXXX'

この時に先程取得しておいたユーザーのIdをWhere句で指定すればOKです。

f:id:sugimomoto:20200914094833p:plain

これでミーティングデータ一覧を取得できました。

f:id:sugimomoto:20200914094839p:plain

あとはPower BIの機能を利用して分析することができます。以下はミーティングの時間を日付ごとに集計しただけですが、年月日マスタなどをリレーションさせることで、どのくらいの頻度でミーティングが行われているか? などの分析も実施できるでしょう。

f:id:sugimomoto:20200914094844p:plain

なお、過去のミーティングの結果、参加者数などを取得したい場合は「PastMeetings」テーブルを使用します。ただし、このテーブルにアクセスする場合、対象のミーティングIDが必要となるので注意しましょう。

http://cdn.cdata.com/help/FAF/api/zoom/pg_zoomviews-pastmeetings.htm

f:id:sugimomoto:20200914094851p:plain