シャローム!Sato-Gです。
新型コロナの自粛期間の間、自粛させていただいた”Sisense-Knowledge”の投稿もついに再開←こらっ!
新型コロナに感染して大変だったんだよ←こらっ!ウソつけ!
言い訳は申しません!
すみませんっ!
既に同僚2人が2つ投稿してくれたところで、今日は私の当番なのでさっそくいきますか。。。

以前の投稿、Connector】SisenseからCDataのコネクターでGoogle Sheetsに接続してみる で紹介したCDataのGoogle SheetsコネクタでサクッとSIGNATEさんのCOVID-19のデータを取り込んでダッシュボードを作ってみようかーという企画だったんだが、いきなり繋がらなーい!
Sisenseをバージョンアップしたせいかな?と思ったんだけど、CDataさんにログを送って回答が返ってくるまでの間に、Sisense純正コネクタでやっちゃおう!
ところが結構ハマったので遅くなっちゃったんだけどさ。

1.Google APIコンソールの設定

Google Sheetsに接続するにはOAuthで接続することになるので、Google APIの設定が必要になる。
これはSisense側ではできなくて、Google APIのコンソールで設定しなきゃいけない。

1.1 新しいプロジェクトを登録する

Google APIのコンソール
に接続すると、以下の画面になる。
「My First Project」をクリックして、[新しいプロジェクト]を選択して、新規のAPI設定を行う。

新しいプロジェクトでは、プロジェクト名に”Sisense”を入力し(わかりやすい名前ならなんでもいい)、[作成]ボタンをクリックする。

以下のように”Sisense”というプロジェクトが登録されたのがわかる。今回作成したプロジェクト”Sisense”を選択して設定を進める。

1.2 APIの追加

APIとサービスの画面が表示されるので、ここで使用するAPIを追加していく。
ここでは「+APIとサービスの有効化」をクリックして、APIライブラリを表示する。

APIライブラリの一覧が表示される。Google Sheetsに接続するには3つのAPIを追加する必要がある。まずはスクロールして(ここでは検索もできる)「Google Drive API」を選択する。

Google Drive APIが表示されるので、ここで[有効にする]をクリックする。

以上でGoogle Drive APIが追加されたので、同様に以下の2つのAPIも追加する。
・Cloud Storage
・Google Sheets API


以上で必要となるAPIの追加は完了だ。

1.3 認証設定

次は認証設定だ。
左ペインの「認証情報」を選択し、以下の画面が表示されたら、[同意画面を構成]をクリックする。

OAuth同意画面が表示される。
ここでは「外部」を選択し、[作成]をクリックする。

ここで同意画面は以下の表示になるので、以下のように設定する。
アプリケーションの種類
– 内部
アプリケーション名
– “Sisense”
承認済みドメイン
– Sisense Serverのドメイン名を設定する。
※ドメインである必要があるため、この方法はIPアドレスでの設定は不可のようだ。
httpsの場合は”https://ドメイン名”にしておく。
[保存]ボタンをクリックする


以上でOAuthの同意設定が完了したのでさらに認証情報を登録していく。

1.4 OAuthクライアントの作成

認証情報画面で「+認証情報を作成」をクリックし、ドロップダウンリストの中から「OAuthクライアントID」を選択する。

OAuthクライアントIDの設定画面では以下のように設定する。
アプリケーションの種類
– ウェブアプリケーション
名前
– Sisense
承認済みのJavaScript生成元
– URI Sisense serverのURL 例) http://hoge.com:8081
承認済みのリダイレクトURI
http://APP_URL/oauth/R29vZ2xlIFNwcmVhZHNoZWV0cw==/callback
APP_URLは承認済みのJavaScript生成元で設定したドメイン(ポートも)を指定する。
例)http://hoge.com:8081/oauth/R29vZ2xlIFNwcmVhZHNoZWV0cw==/callback
[作成]ボタンをクリックする



以上でOAuthクライアントが作成され、以下の画面が表示される。
ここで表示されるクライアントIDとクライアントシークレットは次の作業で必要になるのでテキストエディタでコピーしておく。

以上で、Google APIコンソールでの設定は完了。
以後はSisense側の設定になる

2.Sisenseの接続設定

2.1 manifest.jsonに認証情報を追加する

Sisense Serverの
C:\Program Files\Sisense\DataConnectors\JVMContainer\Connectors\Google Spreadsheets
にあるmanifest.jsonファイルをテキストエディタで開く。

oAuth2の”scope”の下に

"clientId": "上記のクライアントID"
"clientSecret": "上記の"クライアントシークレット"

の2行を追加する。

2.2 Elasticubeを作成する

新しいElastiCubeを作成し、データの追加でGoogle Sheetsを選択すると以下の画面が表示される。
[Sign in with Google]をクリックし、Googleにログインする。
ここでは接続するアカウントを指定する。

ログインすると以下のダイアログが表示される。
GoogleドライブをGoogleスプレッドシートに対する許可を確認してくるので、[許可]ボタンをクリックする。

接続が成功すると以下の画面表示になるので、[次へ]で進む。

接続に利用してアカウントに共有されているGoogle Sheetsが全て表示されるので、予め表示しておいた”SIGNATE COVID-19 Case Dataset”を選択する。

SIGNATE COVID-19のデータは以下にて一般公開されている。
https://drive.google.com/drive/folders/1EcVW5JQKMB6zoyfHm8_zLVj—t_hccF

以下のようにSIGNATE COVID-19 Case Dataset内のシートが表示されるので、「罹患者」を選択する。


これで、罹患者のテーブルが作成された。
ふぅーーーっ。。。

3.まとめ

もう少し進めたいところなんだけど、再開早々ヘヴィな内容になってしまったので、今回はこの辺りで終了。
ごめんなさい、面倒くさい設定で。
CDataのコネクタは偉大だ!
だけど、この設定はGoogle APIを使う時の標準的な設定なので、マスターしておいて損はない。

最後に、やってみて留意しなければいけない点を再確認しておくと、Google APIでOAuth設定を行う時はドメインを指定する必要があるため、Sisense Serverはドメイン環境である必要がある。
おそらくIPアドレスでSisense Serverを構成している環境ではこの方法はうまくいかないと思う。

次回は接続したGoogle Sheetsからデータを取り込んでみる。
ちょっとわくわく。。

ではまた!

この記事が気に入ったら
いいね ! しよう