Node.js で Zendesk のデータを MySQL データベースとしてクエリ
Zendesk 用の ODBC Driver の SQL Gateway を使用すると、MySQL インターフェース経由でZendesk のデータをクエリできます。以下の手順に従って、SQL Gateway の MySQL リモーティングサービスを起動し、Node.js からクエリを開始してください。
Zendesk のデータに接続
まだ行っていない場合は、データソース名(DSN)で必要な接続プロパティの値を指定してください。組み込みの Microsoft ODBC データソースアドミニストレーターを使用して DSN を設定できます。これはドライバーインストールの最後のステップでもあります。Microsoft ODBC データソースアドミニストレーターを使用して DSN を作成・設定する方法については、ヘルプドキュメントの「はじめに」の章を参照してください。
Zendesk 接続プロパティの取得・設定方法
Zendesk に接続するには、https://{subdomain}.zendesk.com の形式でURL(Zendesk Support URL)を設定します。接続後、次のセクションの説明に従ってユーザー認証を行います。
また、TicketMetrics テーブルのアーカイブデータを扱うユーザーは、UseIncrementalAPI プロパティをTrue に設定する必要があります。
Zendesk への認証
Zendesk は、Zendesk インスタンスの設定に応じて、3種類の認証をサポートします。API トークン認証、OAuth 認証、Basic 認証(レガシー)です。
API トークン認証
API トークン認証を使用する場合は、E メールアドレスとApiToken を指定します。 AuthScheme をAPIToken に、User をE メールアドレスに設定し、Zendesk Support の管理画面で以下の設定を行います。
- Token アクセスを有効にします。
- Admin -> Channels-> API で、API トークンを管理します。一度にアクティブにできるトークンは1つだけです。トークンを削除すると、そのトークンは永久に無効化されます。
その他の認証方法についてはヘルプドキュメントを参照してください。
SQL Gateway を設定
SQL Gateway 概要を参照して、Zendesk のデータ を仮想 MySQL データベースとして接続を設定してください。クライアントからの MySQL リクエストをリッスンする MySQL リモーティングサービスを設定します。サービスは SQL Gateway UI で設定できます。

Node.js から Zendesk をクエリ
以下の例では、mysql モジュールを使用して Zendesk への接続を定義し、クエリを実行する方法を示しています。以下の情報が必要です。
- ホスト名またはアドレス、およびポート:MySQL リモーティングサービスが MySQL 接続をリッスンしているマシンとポート
- ユーザー名とパスワード:SQL Gateway の Users タブで認証したユーザーのユーザー名とパスワード
- データベース名:MySQL リモーティングサービス用に設定した DSN
以下のコードでZendesk のデータに接続し、クエリの実行を開始できます。
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
database : 'CData Zendesk Sys',
port : '3306',
user : 'mysql_user',
password : 'test'
});
connection.connect();
connection.query('SELECT * FROM Tickets', function(err, rows, fields) {
if (err) throw err;
console.log(rows);
});
connection.end();