Node.js からHarvest のデータをSQL Server データベースとしてクエリ

加藤龍彦
加藤龍彦
デジタルマーケティング
Node.js からHarvest のデータにSQL Server クエリを実行します。

CData Connect AI を使用すると、SQL Server インターフェース経由でHarvest のデータをクエリできます。以下のステップに従って、Connect AI にHarvest の仮想データベースを作成し、Node.js を使用してクエリを実行します。

CData Connect AI は、Harvest のピュアMySQL かつクラウドベースのインターフェースを提供し、ネイティブにサポートされているデータベースにデータを複製することなくNode.js からの手軽なリアルタイムHarvest のデータクエリを実現します。Node.js でデータをクエリすると、CData Connect AI はサポートされているすべてのSQL 操作(フィルタ、JOIN など)を直接Harvest にプッシュし、サーバー側の処理を活用してHarvest のデータを高速で返します。

Connect AI からHarvest に接続する

CData Connect AI は直感的なクリック操作ベースのインターフェースを使ってデータソースに接続します。
  1. Connect AI にログインし、 Add Connection をクリックします。 コネクションを追加
  2. Add Connection パネルから「Harvest」を選択します。 データソースを選択
  3. 必要な認証情報を入力し、Harvest に接続します。

    まず、Profile 接続プロパティをディスク上のHarvest プロファイルの場所に設定します(例:C:\profiles\Harvest.apip)。次に、ProfileSettings 接続プロパティをHarvest の接続文字列に設定します(以下を参照)。

    Harvest API プロファイル設定

    Harvest に認証するには、トークン認証またはOAuth 標準のいずれかを使用できます。自分のデータに接続するにはBasic 認証を使用します。他のユーザーが自分のデータに接続できるようにするにはOAuth を使用します。

    トークン認証の使用

    トークン認証を使用するには、ProfileSettings 接続プロパティでAPIKey にHarvest パーソナルアクセストークンを設定します。APIKey に加えて、ProfileSettings でAccountId を設定して接続します。

    OAuth 認証の使用

    まず、Harvest でOAuth2 アプリケーションを登録します。アプリケーションはHarvest ID の「Developers」セクションから作成できます。

    以下の接続プロパティを設定すると、接続できるようになります。

    • ProfileSettings:ProfileSettings でAccountId を設定します。
    • AuthScheme:OAuth に設定します。
    • OAuthClientId:アプリ設定で指定したclient ID に設定します。
    • OAuthClientSecret:アプリ設定で指定したclient secret に設定します。
    • CallbackURL:アプリ設定で指定したRedirect URI に設定します。
    • InitiateOAuth:GETANDREFRESH に設定します。InitiateOAuth を使用して、ドライバーがOAuthAccessToken を取得および更新する方法を管理できます。
    コネクションの設定(Salesforce の例)
  4. Create & Test をクリックします。
  5. Edit Harvest Connection ページのPermissions タブに移動し、ユーザーベースのアクセス許可を更新します。 権限の更新

パーソナルアクセストークンを追加する

OAuth 認証をサポートしないサービス、アプリケーション、プラットフォーム、フレームワークから接続する場合、パーソナルアクセストークン(PAT)を認証に使用できます。きめ細かくアクセスを管理するために、サービスごとに個別のPAT を作成するのがベストプラクティスです。

    1. User Profile ページでPersonal Access Token セクションにスクロールし、 Create PAT をクリックします。
    2. PAT の名前を入力して Create をクリックします。 新しいPAT を作成
    3. パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。

    接続が設定されたら、Node.js からHarvest のデータに接続できるようになります。

    Node.js からHarvest をクエリ

    以下の例は、SQL Server モジュールを使用してHarvest へのクエリを実行する方法を説明しています。以下の情報が必要です。

    • server:tds.cdata.com
    • port:14333
    • user:Connect AI ユーザー(例:[email protected])
    • password:上記のユーザーのPAT
    • database:Harvest 用に構成した接続(API1)

    以下のコードで、Harvest に接続してクエリが実行できます。

    var sql = require('mssql')
    var config = {
    	server: 'tds.cdata.com',
    	port:14333,
    	user: '[email protected]', //update me
    	password:'CONNECT_USER_PAT', //update me
    	options: {
    		encrypt: true,
    		database: 'API1'
    	}
    }
    
    sql.connect(config, err => {
        if(err){
            throw err ;
        }
        new sql.Request().query('SELECT * FROM Invoices', (err, result) => {
            console.dir(result)
        })
    
    });
    
    sql.on('error', err => {
        console.log("SQL Error: " ,err);
    })
    

はじめる準備はできましたか?

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル