CData Software Blog

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

kintone データをノーコードでGoogle Spreadsheet からリアルタイム参照&リフレッシュ

お客様からよく相談をいただく、Google Spreadsheet からkintone データをリアルタイムで参照する方法を紹介します。

kintone からCSV で落としてからGoogle Spreadsheet にアップロードする方法だと、kintone 側に変更があるたびにデータのロードの手間がかかります。CData API Server を使うことで、Google Spreadsheet から=importData() 関数を使って、リアルタイムkintone データを取得し、リフレッシュすることができるようになります。Google Spreadsheet のImport 関数は、OData とう形式のREST API を取得することが可能です。kintone のREST API はOData 形式ではないため、CData API Server でkintone アプリをOData エンドポイントにして公開することで、Google Spreadsheet からの参照が可能になります。

f:id:cdatasoftware:20200526230521p:plain
kintone データをリアルタイムでGoogle Sheet から参照

API Server およびkintone Driver をインストール

CData API Server は、RDB など多様なデータソースを本格的なREST API (OData)エンドポイントとして公開することができる、サーバーソフトウェアです。30日の無償試用版を使うことができます。Windows 版とJava 版があります。お好きなバージョンをインストールしてください。

www.cdata.com

次にkintone Driver をインストールします。こちらも30日の無償版があります。API Server がWindows 版の時はADO.NET Data Provider for kintone、API Server がJava 版の場合には、JDBC Driver for kintone をインストールしてください。

https://www.cdata.com/jp/drivers/kintone/download/

API Server にkintone をデータソースとして設定

API Server をインストールすると組み込みサーバーで起動します。もちろんIISTomcat でホストすることも可能です。注意点としては、Google Spreadsheet からのアクセスになりますので、API Server はInternet Facing な環境にホストしておく必要があります。

ブラウザから管理コンソールにログインします。

kintone をAPI Server のデータソースに設定する

[設定]→[接続]とナビゲートします。上のプロセスでkintone Driver をインストールしているので、kintone のアイコンがありますのでkintone アイコンをクリックします。

f:id:cdatasoftware:20200526231438p:plain
kintone をAPI Server のデータソースに選択

接続設定画面で、kintone に接続します。User、Password、およびkintone のURL を入力することでkintone API に接続が可能になります。

f:id:cdatasoftware:20200526231833p:plain
kintone に接続

入力したら接続テストとクリックして、接続を確認します。OK であれば、設定を保存します。

認証トークンをクエリ文字列で渡せるようにする

Google Sheet からの接続のための注意点としては、[クエリ文字列パラメータとして認証トークンを使用する]設定を行う必要があります。 cdn.cdata.com

クエリ文字列パラメータとして認証トークンを使用する HTTP フォームポストデータ、もしくはクエリパラメータの一部として提供される_@authtoken_ パラメータの値として認証トークンを指定することができます。ただし、デフォルトではAPI Server はクエリ文字列パラメータにおいて認証トークンを渡すことをサポートしていません。 settings.cfg のアプリケーションセクションにて、次のオプションを設定することで有効化できます。
[Application] AllowAuthtokenInURL = true

Google Spreadsheet で利用するkintone アプリをエンドポイントとして設定

[設定]→[リソース]からkintone のどのアプリをOData エンドポイントとして公開するかを設定します。先ほど作成したkintone の接続を選択します。

f:id:cdatasoftware:20200526232043p:plain
kintone のリソース設定

kintone のアプリをリストから選択します。 f:id:cdatasoftware:20200526232138p:plain

選択したkintone アプリのどのフィールドを公開するかをチェックして選択します。 f:id:cdatasoftware:20200526232215p:plain

これで選択したkintone アプリがCData API Server でOData エンドポイントとして公開されました。

Google Spreadsheet からkintone(API Server)データを参照

新しいGoogle Spreadsheet を開きます。kintone データをインポートする左上のセルを選択します。そこにimportData() 関数を入力します。

=ImportData("https://your-server/api.rsc/Comments?@csv&@authtoken=your-authtoken")

エンドポイントURL をAPI Server のドキュメントからコピーします。authtoken はAPI Server の[ユーザー]を作成し、生成されたトークンを使います。 f:id:cdatasoftware:20200526232605p:plain

すぐにImportData 関数が走り、kintone データをテーブル形式でGoogle Spreadsheet 上に取得できました。一度設定しておけば、Google Spreadsheet がデータをリフレッシュして最新のkintone のデータを取得することができます。

f:id:cdatasoftware:20200526233158p:plain
Google Spreadsheet からリアルタイムkintone データを取得