Xero のデータにPythonで接続する方法|CData Connect AI SDK
CData Connect AI Python SDK を使うと、標準的なDB-API 2.0のPythonコードでXero のデータをそのまま読み書きできます。プログラミング不要の他ツールと異なり、pandasやpetlなど既存のPythonエコシステムにそのまま組み込めます。パッケージのインストールからクエリ実行まで3ステップで完了します。
CData Connect AI Python SDK(cdata-connect-ai)は DB-API 2.0(PEP 249)に準拠したクライアントで、標準的な Python のデータベースコードでリアルタイムのXero のデータを取得・操作できます。接続まわりは Connect AI が引き受けてくれるので、パッケージを1つインストールしてパーソナルアクセストークンで認証するだけで、Xero(および Connect AI に接続済みのその他すべてのソース)にクエリを実行できます。しかも sqlite3 や psycopg2 といったライブラリでおなじみの connect() / cursor() / fetchall() という同じパターンをそのまま使えます。
この記事では、Connect AI で Xero に接続し、パーソナルアクセストークンを生成して SDK をインストールし、リアルタイムのXero のデータを読み取る(対応している場合は書き込む)までの流れをご紹介します。
事前準備
- CData Connect AI のアカウント
- Python 3.8 以降
- 有効な認証情報を持つアクティブな Xero アカウント
Xero データ連携について
CData を使用すれば、Xero のライブデータへのアクセスと統合がこれまでになく簡単になります。お客様は CData の接続機能を以下の目的で利用しています:
- Xero Accounts と、米国およびオーストラリアの Payroll API の両方に接続できます。
- Customers、Transactions、Invoices、Sales Receipts などの Xero オブジェクトの読み取り、書き込み、更新、削除ができます。
- SQL ストアドプロシージャを使用して、カートへのアイテム追加、注文の送信、添付ファイルのダウンロードなどのアクションを実行できます。
- 会計、給与、ファイル、固定資産、プロジェクトデータを扱うことができます。
お客様は、Tableau、Qlik Sense、Excel などのお気に入りのツールと Xero データを定期的に統合し、Xero データをデータベースやデータウェアハウスに統合しています。
はじめに
Connect AI で Xero に接続する方法は?
CData Connect AI では、直感的なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect AI にログインし、Sources をクリックして、 Add Connection をクリックします
- 「Add Connection」パネルから「Xero」を選択します
-
Xero に接続するために必要な認証プロパティを入力します。
接続には、認証用の値に加えてSchema 接続プロパティを設定してください。Xero はプライベートアプリケーション、 パブリックアプリケーション、パートナーアプリケーションに認証を提供します。設定したアプリケーションに応じて、XeroAppAuthentication プロパティを PUBLIC、PRIVATE、またはPARTNER に設定する必要があります。プライベートアプリケーションから接続するには、追加でOAuthAccessToken、OAuthClientId、 OAuthClientSecret、CertificateStoreType、CertificateStore、およびCertificateStorePassword を設定してください。
パブリックまたはパートナーアプリケーションから接続する場合は、埋め込みOAuthClientId、OAuthClientSecret、 およびCallbackURL を指定するか、アプリを登録してOAuth の値を入手できます。
Xero への認証については、ヘルプドキュメントの「はじめに」を参照してください。
- 「Save & Test」をクリックします
- 「Permissions」タブに移動し、ユーザーベースの権限を更新します。

パーソナルアクセストークン(PAT)を生成する
Python SDK は、アカウントのメールアドレスとパーソナルアクセストークン(PAT)を使って Connect AI に認証します。アクセスの粒度を保つために、アプリケーションごとに個別の PAT を作成することをおすすめします。
- Connect AI アプリの右上にある歯車アイコン()をクリックして、設定ページを開きます。
- 設定ページの Access Tokens セクションに移動し、 Create PAT をクリックします。
- PAT に名前を付けて Create をクリックします。

- パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして安全な場所に保管してください。
SDK をインストールする
pip を使って PyPI から SDK をインストールします。
pip install cdata-connect-ai
接続して最初のクエリを実行する
アカウントのメールアドレスと PAT で接続したら、sys_tables にクエリを実行して、接続済みのソース全体で利用可能なテーブルを確認してみましょう。Connect AI の識別子は <Connection>.<Schema>.<Table> という3つの部分で構成されており、接続名はデフォルトでソース名(例:Xero1)になります。
import cdata_connect_ai
conn = cdata_connect_ai.connect(
username="[email protected]",
password="<your_pat>",
)
cur = conn.cursor()
# Discover what's available across your connected sources
cur.execute("SELECT CatalogName, SchemaName, TableName FROM sys_tables LIMIT 25")
for row in cur.fetchall():
print(row)
結果から任意のテーブルを選び、直接クエリを実行してみましょう。
cur.execute(
"SELECT Name, QuantityOnHand "
"FROM [Xero1].[Xero].[Items] "
"LIMIT 10"
)
for row in cur.fetchall():
print(row)
Xero に書き込む
データソースと接続の権限が許可していれば、同じカーソルで INSERT、UPDATE、DELETE ステートメントも実行できます。フィルタ付きの読み取りとまったく同じように、pyformat(%(name)s)パラメータで値をバインドし、影響を受けた行数は cursor.rowcount で確認できます。
# Insert a new record
cur.execute(
"INSERT INTO [Xero1].[Xero].[Items] (Name) "
"VALUES (%(newvalue)s)",
{"newvalue": "Example value"},
)
print(f"Rows inserted: {cur.rowcount}")
# Update existing records
cur.execute(
"UPDATE [Xero1].[Xero].[Items] "
"SET QuantityOnHand = %(newvalue)s "
"WHERE Name = 'Golf balls - white single'",
{"newvalue": "Updated value"},
)
print(f"Rows updated: {cur.rowcount}")
conn.close()
注意:書き込み可能なソースであっても、読み取り専用の PAT や接続権限では書き込み操作は拒否されます。同じパラメータ化のパターンは、DELETE ステートメントや cursor.callproc() によるストアドプロシージャの実行にも使えます。
これがワークフローのすべてです。パッケージが1つ、PAT、そして標準的な DB-API 呼び出しだけ。SDK は通常の DB-API 接続を返すので、Python のデータエコシステムのほかのツールにもそのまま組み込めます。ここから先は、この同じ接続を使って、Xero のデータを pandas に読み込んだり、petl で ETL パイプラインを構築したり、Dash の Web アプリを動かしたりできます。
関連情報と無料トライアル
これで、CData Connect AI Python SDK を通じて Python からリアルタイムのXero のデータをクエリできるようになりました。Xero(および数百種類のその他のデータソース)への接続について詳しくは、Connect AI のページをご覧ください。
CData Connect AI の詳細、または無料トライアルにお申し込みください: