CData Software Blog

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

Chatwork API から取得したタスク一覧を Power BI のCalendar Visual で可視化

f:id:sugimomoto:20200929101918p:plain

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

今回は国産のビジネスコミュニケーションサービスで最大級のユーザー数を誇る Chatwork の API と CData Driverを組み合わせた連携方法を紹介したいと思います。

Chatwork とは?

Chatwork は国産のビジネスチャットSaaSです。

https://go.chatwork.com/ja/

f:id:sugimomoto:20200929101926p:plain

チャットの機能がメインですが、タスク管理やファイル共有、ビデオ通話機能も備え、ビジネスユースにも十分活用できるサービスです。

f:id:sugimomoto:20200929101933p:plain

また、タスクやルーム、メッセージを操作できるAPI、Webhook が提供されており、様々な外部サービスとの連携を実現できます。

https://developer.chatwork.com/ja/

f:id:sugimomoto:20200929101939p:plain

今回はこのAPIを使って Microsoft が提供するBIツール、Power BIと連携していきます。

実現イメージ

Power BI は汎用のWebコネクタやPowerQueryを用いることで各種APIに接続が可能です。しかしながら、APIに関する知識の習得はもちろんのこと、ページネーション・認証・取得したデータのスキーマ対応をどのように対応するかといった課題が存在し、分析担当者が簡単に接続できるとまでは言えません。

f:id:sugimomoto:20200929101945p:plain

そこで、CData API Driver for ODBC を用いて、このボトルネックを解決します。

各ツールが標準で持っているODBCJDBCのインターフェースを持っています。CData API Driverはその標準インターフェースを利用し、各ツールから受け取ったSQLを変換して Chatwork API へリクエストを行うようにします。

リクエスト後、Jsonフォーマットで返ってきたデータセットはCData API Driverが各インタフェースのテーブル形式に変換してBIツールに返すようにします。

f:id:sugimomoto:20200929102023p:plain

これにより、各種ツールからアドホックSQLによるリクエストがあったタイミングで最新のデータを API から取得することが可能です。

なお、今回はPowerBIから接続としましたが、TableauやQlikなどからも同じように接続が可能である点が特徴です。各BIツールでそれぞれコネクターを作る必要がありません。

手順

それでは実際に PowerBI と Chatwork API の連携する手順を説明します。

PowerBI は以下URLから予めデスクトップ版をダウンロードしておいてください。

powerbi.microsoft.com

Chatwork API Tokenの取得

まず最初に API 接続用の Token を Chatwork 上から取得します。

Chatwork にログインし「サービス連携」に移動し

f:id:sugimomoto:20200929102043p:plain

API Token画面でパスワードを入力することで、発行・表示ができます。

f:id:sugimomoto:20200929102049p:plain

以下のようにAPI Tokenが生成されたら控えておきましょう。

f:id:sugimomoto:20200929102055p:plain

CData API Driver 接続用設定ファイルの作成

次に、CData API Deiver が Chatwork API を適切に利用できるようにするための設定ファイルを作成します。

以下のURLから保存してください。

https://cdatajbuilds.s3-ap-northeast-1.amazonaws.com/APIProfiles/Chatwork.apip

保存先フォルダは後ほど使用するので「C:\CData_REST\Chatwork」といった任意のフォルダに配置してください。

CData API Driver for ODBC のインストール

PowerBI と Chatwork API を繋ぐために必要となるCData API Driverをインストールします。

f:id:sugimomoto:20200923174403p:plain

まず、以下のURLからCData API Driver for ODBC の30日間の評価版をダウンロードします。ダウンロードの際には、Emailの登録が必要となります。

https://www.cdata.com/jp/download/download.aspx?sku=FADF-A&type=demo

ダウンロードしたsetup.exeファイルをBIツールがインストールされているマシンにインストールします。インストールウィザードに従い、EULAを確認した上でインストールを完了します。

f:id:sugimomoto:20200923174413p:plain

※途中、ライセンスサーバーへのオンラインアクティベーションが行われるためネットワーク環境に接続されている必要があります。

インストールが完了すると、ODBCのDSN設定のウィンドウが立ち上がります。

以下の項目をセットし、保存します。

プロパティ名 フィールド名 入力例
Profile Chatwork.apipのファイルパス C:\Work\Chatwork.apip
ProfileSettings ChatworkのAPI Tokenを指定 APIKey=7c4f6c0de1b9a1b9e7ddeecbd4924897;

f:id:sugimomoto:20200929102102p:plain

入力後、接続テストをクリックし、以下のようにメッセージが表示されればOKです。

f:id:sugimomoto:20200929102107p:plain

以上で、CData API Driver for ODBC の準備は完了です。

Power BI からの接続

それでは、Power BIから CData API Driver for ODBC に接続します。

PowerBI デスクトップを立ち上げて「データを取得」をクリックし

f:id:sugimomoto:20200115120336p:plain

ODBC 接続を選択します。

f:id:sugimomoto:20200115120341p:plain

データソース名から先程ODBCで登録したDSNを選択し、Windows認証で接続します。

f:id:sugimomoto:20200929102114p:plain

f:id:sugimomoto:20200929102120p:plain

すると、以下のようにテーブル化された Chatwork API のリソースが選択できるようになります。

今回は自分のタスクをCalendarに表示したいので、「MyTasks」を選択します。選択後、「読み込み」をクリックします。

f:id:sugimomoto:20200929102126p:plain

これで Power BIにフラットな形で Chatwork のタスクデータが取り込まれます。

f:id:sugimomoto:20200929102131p:plain

次に追加のビジュアルを利用して、タスクをカレンダー表示してみましょう。

デフォルトではカレンダー用のビジュアルが無いので、PowreBIのビジュアル一覧から「その他のビジュアルの取得」で追加します。

f:id:sugimomoto:20200929102138p:plain

Calendarで検索することで様々なカレンダービジュアルが確認できます。今回は「Calendar by MAQ Software」のビジュアルを追加してみました。

f:id:sugimomoto:20200929102143p:plain

ビジュアルを追加したら Start dateの項目に「LimitTime」、Eventsの項目に「Body」を設定することで、以下のようなカレンダー表示が作成できます。

f:id:sugimomoto:20200929102150p:plain

一覧などを加えるとよりわかりやすいかもしれませんね。

f:id:sugimomoto:20200929102157p:plain

おわりに

本記事では Power BI をもとに解説しましたが、CData API DriverではPowerBI以外のBIツールやアナリティクスツールの接続もサポートしています。

以下のURLで各ツールの接続リファレンスを公開していますので、普段使っているツールから是非試してみてください。

http://www.cdata.com/jp/drivers/rest/

f:id:sugimomoto:20200115120402p:plain