5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CData SoftwareAdvent Calendar 2021

Day 20

CData ConnectとTwilioを接続し、コールログを取得してみた

Last updated at Posted at 2021-12-20

CData ConnectとTwilioを接続し、コールログを取得してみた

この記事はCData Software Advent Calendar 2021の20日目です。Twilio Advent Calendar 2021 - Twilioを使うためのコツ、TIPSなど、Twilioのことなら何でも共有しよう!のカレンダー2にも同時に投稿しようとしたら怒られてしまいましたw

CData Connectとは

CData ConnectはSaaS/クラウドのデータに接続し、アプリケーションに連携できる製品です。250種類以上のデータソースに対応しており、私が所属するTwilioのデータにもアクセスできます。

今回の記事ではこのCData Connectを使ってTwilioと連携してみました。

前提条件

Twilioアカウントに接続

CData Connectアカウントの取得後、CData Connectに接続すると対応するソースの一覧が表示されます。この一覧からTwilioを選択します。

cdata-connect-data-sources.png

次にTwilio認証情報を入力する画面が表示されます。この画面にはAccount SidおよびAuth Tokenを入力します。

cdata-twilio-account-info.png

取得方法については下記で説明されています。(記事はAuthトークンの取得方法ですが、Account Sidも同じ画面で取得できます。

Authトークンとその変更方法

取得した情報を入力しSave Changesボタンをクリックします。

どんなデータが取得できるかをみてましょう。Data Explorerタブをクリックし、Twilio1を選択します。左側のナビゲーションに取得できるリソースの一覧が表示されます。

data-explorer.png

この一覧から項目をドラッグし、右上のペインにドロップするとSQLクエリが表示されます。

twilio-call-log.png

TwilioのコールログにはCall Resource APIを用いてアクセスでき、着信元や発信先などプライバシーに関わる情報も含まれています。そのままアプリケーションに渡すのは良くなさそうです。

出力するデータを定義

不必要なデータをアプリケーションに渡さないように絞っていきましょう。ODATA画面を開き、Add Tables...ボタンをクリックします。

DatabaseからTwilio1を選択し、

odata-source-select.png

[CData].[Twilio].[Calls]にチェックを入れます。

odata-twilio-select-table.png

今回は情報の取得だけが目的なのでGETのみを指定し、不要な列のチェックを外していきます。

odata-twilio-call-columns.png

アプリケーション用のアカウントを作成し、権限を付与

CData Connectに初期状態でアクセスしているのはadminユーザーなのでアプリケーションからの利用に適していません。そのため、レポート用アカウントを作成します。

トップナビゲーションからUSERSを選択し、ユーザー一覧画面から+Addボタンをクリックします。

users-add.png

ダイアログではアプリケーションで使用するユーザーを登録します。

users-new-user.png

一覧画面にユーザーが追加されたことを確認します。ここでもAuthtokenが表示されますが、この値はアプリケーションからCData Connectに接続する際に利用します。

users-list.png

DATA MODEL画面に戻り、Connected SourcesからTwilio1をダブルクリックします。
続けてPrivilegesタブを表示し先ほど作成したアカウントにSELECT権限を追加しデータの読み取りができるように設定しました。

Privileges.png

これで設定は完了です。

Postmanで接続テスト

API画面を開くと先ほど設定したテーブルがTablesに表示されています。項目をクリックするとこのテーブルのエンドポイントが確認できます。このURLと先ほど作成したユーザーのAuthTokenを用いて接続確認ができます。
Screen Shot 2021-12-20 at 16.11.20.png

今回はPostmanを使ってみました。

Postmanを開き、URLを指定します。リクエストヘッダーにx-cdata-authtokenというKeyを追加し、先ほどのAuthtokenをValueに設定します。

postman.png

SendボタンをクリックするとコールログがJSON形式で返ってきます。とっても簡単

postman-result.png

ここから先はご自由に

これでアプリケーションでTwilioのコールログを使用する準備が整いました。同じことをTwilio APIだけでも実現可能ですが、CData Connectを中間に入れ込むメリットは次のような点だと感じました。

  1. CData Connectを中間に配置することで複数のデータソースを利用する場合、それぞれへの接続方法をアプリケーション実装者が理解しなくても良い。CData Connectにさえ接続できれば良い
  2. それぞれのデータソースへの認証情報を共有しなくて良いので気持ち安全
  3. TableauMicrosoft Power BIRevealなど、BIアプリケーションで利用する場合に「どのデータを表示すべきか」を管理できるので見せてはいけない情報は隠せる

Revealで可視化してみた一例はこんな感じです。

Screen Shot 2021-12-20 at 12.16.45.png

設定も簡単なのでデータアクセス基盤をCData Connectで構築するとアプリケーションの開発生産性が上がるんじゃないかな?

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?