シャローム!Sato-Gです。
新型コロナの自粛期間の間、自粛させていただいた"Sisense-Knowledge"の投稿もついに再開←こらっ!
新型コロナに感染して大変だったんだよ←こらっ!ウソつけ!
言い訳は申しません!
すみませんっ!
既に同僚2人が2つ投稿してくれたところで、今日は私の当番なのでさっそくいきますか。。。
以前の投稿、【Connector】SisenseからCDataのコネクターでGoogle Sheetsに接続してみる で紹介したCDataのGoogle SheetsコネクタでサクッとSIGNATEさんのCOVID-19のデータを取り込んでダッシュボードを作ってみようかーという企画だったんだが、いきなり繋がらなーい!
Sisenseをバージョンアップしたせいかな?と思ったんだけど、CDataさんにログを送って回答が返ってくるまでの間に、Sisense純正コネクタでやっちゃおう!
ところが結構ハマったので遅くなっちゃったんだけどさ。
Google Sheetsに接続するにはOAuthで接続することになるので、Google APIの設定が必要になる。
これはSisense側ではできなくて、Google APIのコンソールで設定しなきゃいけない。
Google APIのコンソール
に接続すると、以下の画面になる。
「My First Project」をクリックして、[新しいプロジェクト]を選択して、新規のAPI設定を行う。
新しいプロジェクトでは、プロジェクト名に"Sisense"を入力し(わかりやすい名前ならなんでもいい)、[作成]ボタンをクリックする。
以下のように"Sisense"というプロジェクトが登録されたのがわかる。今回作成したプロジェクト"Sisense"を選択して設定を進める。
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の追加は完了だ。
次は認証設定だ。
左ペインの「認証情報」を選択し、以下の画面が表示されたら、[同意画面を構成]をクリックする。
OAuth同意画面が表示される。
ここでは「外部」を選択し、[作成]をクリックする。
ここで同意画面は以下の表示になるので、以下のように設定する。
・アプリケーションの種類
- 内部
・アプリケーション名
- "Sisense"
・承認済みドメイン
- Sisense Serverのドメイン名を設定する。
※ドメインである必要があるため、この方法はIPアドレスでの設定は不可のようだ。
httpsの場合は"https://ドメイン名"にしておく。
・[保存]ボタンをクリックする。
以上で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側の設定になる
Sisense Serverの
C:\Program Files\Sisense\DataConnectors\JVMContainer\Connectors\Google Spreadsheets
にあるmanifest.jsonファイルをテキストエディタで開く。
oAuth2の"scope"の下に
"clientId": "上記のクライアントID" "clientSecret": "上記の"クライアントシークレット"
の2行を追加する。
新しい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内のシートが表示されるので、「罹患者」を選択する。
これで、罹患者のテーブルが作成された。
ふぅーーーっ。。。
もう少し進めたいところなんだけど、再開早々ヘヴィな内容になってしまったので、今回はこの辺りで終了。
ごめんなさい、面倒くさい設定で。
CDataのコネクタは偉大だ!
だけど、この設定はGoogle APIを使う時の標準的な設定なので、マスターしておいて損はない。
最後に、やってみて留意しなければいけない点を再確認しておくと、Google APIでOAuth設定を行う時はドメインを指定する必要があるため、Sisense Serverはドメイン環境である必要がある。
おそらくIPアドレスでSisense Serverを構成している環境ではこの方法はうまくいかないと思う。
次回は接続したGoogle Sheetsからデータを取り込んでみる。
ちょっとわくわく。。
ではまた!