CData Software Blog

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

freee会計向けのAPI Profileを使ってCData SyncでGoogle BigQueryとデータ同期してみる

f:id:ohkawat:20220224001409p:plain

こんにちは、CData Software Japanテクニカルサポートエンジニアの大川です。

本記事では、弊社より公開されたfreee会計向けのAPI Profileを使って、CData SyncでGoogle BigQueryとデータを同期する方法をご紹介します。

API Profileとは?

弊社ではCData API Driverという製品を提供しています。

www.cdata.com

この製品を利用することで、ODBCJDBCADO.NET等を使用した標準SQLを使ってあらゆるAPIに対してアクセスすることが可能となります。API ProfileとはこのCData API Driverから参照されるAPIスキーマ定義ファイルです。このファイルの仕様は公開されているため、誰でもこのファイルを作成することができ、CData API Driverを使って様々なAPIへアクセスすることが可能となります。

また、弊社から事前に定義されたAPI Profileを公開しています。

www.cdata.com

今回、この事前定義API ProfileにfreeeのAPI向けのファイルが追加されました。

f:id:ohkawat:20220223221836p:plain

これにより、freeeのAPIODBCJDBCADO.NET等を使用した標準SQLを使って利用できるようになりました。

CData Syncとは?

CData Syncは、弊社が提供するデータレプリケーションソフトウェアです。これにより、様々なクラウド上の業務アプリケーションデータをローカルDBやクラウドDBに簡単にレプリケーション(複製)できます。

www.cdata.com

200以上のデータソースおよび様々な同期先データベースが利用可能です。

www.cdata.com

これらの接続先に加え、CData SyncにはCData API Driverが組み込まれており、上記でご説明したAPI Profileがあれば接続先として利用できます。今回はこの機能を使って、freee会計を接続先として利用してみます。

連携手順

それでは、実際にCData Syncを使用してfreee会計のデータをGoogle BigQueryに同期してみます。

freee会計API利用準備

freee会計のAPIを利用するために、freee会計管理側でアプリケーション登録を行います。詳しくは以下の記事を参照ください。

developer.freee.co.jp

「基本設定」タブでは、「コールバックURL」にはhttp://localhost:8019/src/oauthCallback.rsthttp://localhost:8019/の部分はSyncサーバの管理画面へのURLとなるよう必要に応じて修正してください)を設定してください。また、後ほどCData Syncの接続設定に必要となるため「Client ID」と「Client Secret」の値を確認しておきます。

f:id:ohkawat:20220224013713p:plain

「権限設定」タブで同期したいテーブルの「参照」にチェックを入れておきます。今回は「[会計]事業所」を同期してみますので、該当行の「参照」にチェックを入れてください。

f:id:ohkawat:20220224035100p:plain

なお、CData Syncから確認できるテーブル(ビュー)名とデータ種別の対応は以下の通りです。

Name Resource API Reference Link
AccountItemItems 勘定科目の詳細情報の取得 Link
AccountItemPartners 勘定科目の詳細情報の取得 Link
AccountItems 勘定科目一覧の取得 Link
ApprovalFlowRoutes 申請経路一覧の取得 Link
ApprovalFlowRouteSteps 申請経路の取得 Link
ApprovalRequestForms 各種申請の申請フォーム一覧の取得 Link
ApprovalRequestItems 各種申請の取得 Link
ApprovalRequests 各種申請の一覧 Link
Banks 連携サービス一覧の取得 Link
Companies 事業所一覧の取得 Link
CompanyFiscalYears 事業所の詳細情報の取得 Link
DealDetails 取引(収入/支出)一覧の取得 Link
DealPayments 取引(収入/支出)一覧の取得 Link
DealReceipts 取引(収入/支出)一覧の取得 Link
DealRenewDetails 取引(収入/支出)一覧の取得 Link
DealRenews 取引(収入/支出)一覧の取得 Link
Deals 取引(収入/支出)一覧の取得 Link
ExpenseApplicationLines 経費申請一覧の取得 Link
ExpenseApplicationLineTemplates 経費科目一覧の取得 Link
ExpenseApplications 経費申請一覧の取得 Link
InvoiceContents 請求書一覧の取得 Link
Invoices 請求書一覧の取得 Link
Items 品目一覧の取得 Link
Journals 仕訳帳 ダウンロード要求 Link
ManualJournalDetails 振替伝票一覧の取得 Link
ManualJournals 振替伝票一覧の取得 Link
Partners 取引先一覧の取得 Link
PaymentRequestLines 支払依頼詳細の取得 Link
PaymentRequests 支払依頼一覧の取得 Link
QuotationContents 見積書一覧の取得 Link
Quotations 見積書一覧の取得 Link
Receipts ファイルボックス 証憑ファイル一覧の取得 Link
Sections 部門一覧の取得 Link
SegmentTags セグメントタグ一覧の取得 Link
Tags メモタグ一覧の取得 Link
Transfers 取引(振替)一覧の取得 Link
TrialBS 貸借対照表の取得 Link
TrialBSPartners 貸借対照表の取得 Link
TrialBSThreeYears 貸借対照表(3期間比較)の取得 Link
TrialBSTwoYears 貸借対照表(前年比較)の取得 Link
TrialPL 損益計算書の取得 Link
TrialPLPartners 損益計算書の取得 Link
TrialPLSections 損益計算書(部門比較)の取得 Link
TrialPLThreeYears 損益計算書(3期間比較)の取得 Link
TrialPLTwoYears 損益計算書(前年比較)の取得 Link
UserMeCompanies ログインユーザー情報の取得 Link
Users 事業所に所属するユーザー一覧の取得 Link
Walletables 口座一覧の取得 Link
WalletTxns 明細一覧の取得 Link

CData Syncのインストール

以下のCData Syncダウンロードサイトよりダウンロードいただき、インストールしてください。

www.cdata.com

インストール後、トライアルライセンスを有効化することで30日間無償でご試用いただけます。インストール方法やトライアルライセンスの有効化の手順については、以下のハンズオン記事もご参照ください。

www.cdatablog.jp

データソース (freee会計) の接続設定

CData Syncにログインし、「接続」画面を開きます。デフォルトでは今回のfreee会計は表示されていませんので、「+Add More」ボタンをクリックして追加を行います。

f:id:ohkawat:20220224010319p:plain

「コネクタをダウンロード」ダイアログが開きますので、「API Profile」をクリックし、一覧から「Freee」をクリックします。

f:id:ohkawat:20220224010657p:plain

API Profileのダウンロードダイアログが開きますので、「ダウンロード&インストール」をクリックします。

f:id:ohkawat:20220224010932p:plain

自動的にAPI Profileがダウンロードされ、インストールされます。インストールが完了すると以下のダイアログが表示されますので、「OK」をクリックします。

f:id:ohkawat:20220224011156p:plain

すると、データソースの一覧に「Freee Profile」が追加されていますので、クリックします。

f:id:ohkawat:20220224011433p:plain

接続設定画面になりますので、以下の通り設定します。

f:id:ohkawat:20220224020608p:plain

プロパティ名 備考
名前 freee会計 任意の名前
OAuthClientId XXXXX 「XXXXX」はfreee会計API利用準備で確認した「Client ID」の値
OAuthClientSecret XXXXX 「XXXXX」はfreee会計API利用準備で確認した「Client Secret」の値

また、「Advanced」タブで以下の値を設定します。

f:id:ohkawat:20220224042859p:plain

プロパティ名 備考
Other (Optional) CallbackURL=http://localhost:8019/src/oauthCallback.rst;
事業所IDが分かっている場合は以下の通りCompanyIdを指定
CallbackURL=http://localhost:8019/src/oauthCallback.rst;CompanyId=XXXXXXXX;
http://localhost:8019/の部分はSyncサーバの管理画面へのURLとなるよう必要に応じて修正してください。
※ほとんどのAPIではここでCompanyIdを設定する必要があります。事業所IDについてを参照してください。

設定したら、「設定」タブの「次に接続 API Profile For Freee」ボタンをクリックします。

f:id:ohkawat:20220224022346p:plain

するとブラウザが立ち上がり、freee へのログインおよび認可が求められます。表示されている情報を確認し、「許可する」をクリックします。

f:id:ohkawat:20220224035511p:plain

接続が成功すると、以下のように「Success!」と表示されますので、「変更を保存」をクリックします。これでデータソースの接続設定は完了です。

f:id:ohkawat:20220224024053p:plain

同期先 (Google BigQuery) の接続設定

データソースと同様に、同期先の接続を追加します。「接続」設定から「同期先」タブ内の「Google BigQuery」をクリックします。

f:id:ohkawat:20220224024429p:plain

接続設定画面になりますので、以下の通り設定します。

f:id:ohkawat:20220224025328p:plain

プロパティ名 備考
名前 BigQuery 任意の名前
Dataset Id XXXXX 「XXXXX」は同期先として使用するBigQuery のデータセットID
Project Id XXXXX 「XXXXX」は同期先として使用するBigQuery があるプロジェクトID

「次に接続 GoogleBigQuery」ボタンを押すと、CData Syncから対象のGoogleアカウントへのログインおよび認可が求められます。表示されている情報を確認し、「続行」をクリックして許可すると接続が完了しますので、「変更を保存」をクリックします。これで同期先の接続設定は完了です。

f:id:ohkawat:20220224030305p:plain

ジョブの作成

データソースおよび同期先の接続設定が完了したら、ジョブを作成します。

「ジョブ」メニューで「ジョブを追加」をクリックします。

f:id:ohkawat:20220224030700p:plain

ジョブの作成画面が出ますので、以下の通り設定し、「作成」をクリックします。

f:id:ohkawat:20220224030709p:plain

項目名 備考
ジョブ名 freeeToBigQuery 任意の名前
ソース freee会計 [API Profile For Freee] ドロップダウンリストから選択
同期先 BigQuery [GoogleBigQuery] ドロップダウンリストから選択
レプリケーションの種類 スタンダード

これでジョブが作成されましたので、ジョブに対して同期したいテーブルを設定します。「テーブルを追加」をクリックします。

f:id:ohkawat:20220224031156p:plain

今回はfreee会計の「[会計]事業所」の情報を同期しますので、対応する「Companies」テーブルにチェックを入れて「選択したテーブルを追加」をクリックします。

f:id:ohkawat:20220224035709p:plain

ジョブの実行

以上でテーブルデータの同期設定が完了しました。「Companies」テーブルにチェックを入れ、「実行」をクリックして手動同期してみます。

f:id:ohkawat:20220224040105p:plain

すると、「ジョブfreeeToBigQueryは正常に完了しました。」と表示され、同時に同期されたレコード数が表示されます。Google BigQueryのエクスプローラ上でも、自動的にテーブルが作成され、データが挿入されていることが確認できます。

f:id:ohkawat:20220224040847p:plain

事業所IDについて

freee会計のほとんどのAPIへのアクセスには「事業所ID」の指定が必要となります。今回の例では「[会計]事業所」の情報を同期しましたが、これについては「事業所ID」を指定する必要がない情報となります。

「事業所ID」はfreeeの画面上から確認することができないため、freeeのAPIを使用して取得する必要があります(ダッシュボードで確認可能な「事業所番号」とは異なる値です)。CData Syncのみで完結させたい場合は、上記の例のようにまずは「[会計]事業所」の情報を同期してIDを確認することができます。

「事業所ID」が必要な他の情報の同期を行う際は、freee接続設定のAdvancedタブの「Other (Optional)」の値に追加で「CompanyId=XXXXXXXX;」のように事業所IDを指定する必要がありますのでご留意ください。

終わりに

以上のように、CData Syncを使ってfreee会計のデータを簡単に同期することができるようになりました。是非皆様のデータ利活用にお役立ていただければと思います。