こんにちは!リードエンジニアの杉本です。
TēPsは、API を介して EC モール、受注管理システム、Google スプレッドシートやチャットツールなど、日々の業務で利用するさまざまなサービスや機能を自由に組み合わせ、プログラミングの知識や経験がなくても、自社独自の業務を自動化できるiPaaS です。
そんなTēPs はAmazon セラーセントラルやYahoo! ショッピング、ShopifyといったEC 系のコネクタが多数提供されていましたが、CData Connect Server 向けのコネクターを提供しています。本記事ではこのCData Connect Server のコネクタを使ってHubDB のデータをkintone に連携する手順を解説します。
CData Connect Server は、HubDB データのクラウド to クラウドの仮想OData インターフェースを提供し、TēPs からリアルタイムにHubDB データへ連携することができます。
ホスティングについて
TēPs からCData Connect Server に接続するには、利用するConnect Server インスタンスをネットワーク経由での接続が可能なサーバーにホスティングして、URL での接続を設定する必要があります。CData Connect がローカルでホスティングされており、localhost アドレス(localhost:8080 など)またはローカルネットワークのIP アドレス(192.168.1.x など)からしか接続できない場合、TēPs はCData Connect Server に接続することができません。
クラウドホスティングでの利用をご希望の方は、AWS Marketplace やGCP Marketplace で設定済みのインスタンスを提供しています。
HubDB の仮想OData API エンドポイントを作成
まずCData Connect Server でデータソースへの接続およびOData API エンドポイント作成を行います。
- CData Connect Server にログインして、「DATA MODEL」をクリックします。
- 利用できるデータソースアイコンから"HubDB" を選択します。
-
HubDB に接続するために必要なプロパティを入力します。
HubDBデータソースへの接続には、パブリックHubSpotアプリケーションを使用したOAuth認証とプライベートアプリケーショントークンを使用した認証の2つの方法があります。
カスタムOAuthアプリを使用する
すべてのOAuthフローでAuthSchemeを"OAuth"に設定する必要があります。特定の認証ニーズ(デスクトップアプリケーション、Webアプリケーション、ヘッドレスマシン)に必要な接続プロパティについては、ヘルプドキュメントを確認してください。
アプリケーションを登録し、OAuthクライアント認証情報を取得するには、以下の手順を実行してください。
- HubSpotアプリ開発者アカウントにログインします。
- アプリ開発者アカウントである必要があります。標準のHubSpotアカウントではパブリックアプリを作成できません。
- 開発者アカウントのホームページで、アプリタブをクリックします。
- アプリを作成をクリックします。
- アプリ情報タブで、ユーザーが接続する際に表示される値を入力し、必要に応じて変更します。これらの値には、パブリックアプリケーション名、アプリケーションロゴ、アプリケーションの説明が含まれます。
- 認証タブで、「リダイレクトURL」ボックスにコールバックURLを入力します。
- デスクトップアプリケーションを作成する場合は、http://localhost:33333のようなローカルにアクセス可能なURLに設定します。
- Webアプリケーションを作成する場合は、ユーザーがアプリケーションを承認した際にリダイレクトされる信頼できるURLに設定します。
- アプリを作成をクリックします。HubSpotがアプリケーションとそれに関連する認証情報を生成します。
- 認証タブで、クライアントIDとクライアントシークレットを確認します。これらは後でドライバーを設定する際に使用します。
スコープの下で、アプリケーションの意図する機能に必要なスコープを選択します。
テーブルにアクセスするには、最低限以下のスコープが必要です:
- hubdb
- oauth
- crm.objects.owners.read
- 変更を保存をクリックします。
- 統合に必要な機能にアクセスできる本番ポータルにアプリケーションをインストールします。
- 「インストールURL(OAuth)」の下で、完全なURLをコピーをクリックして、アプリケーションのインストールURLをコピーします。
- コピーしたリンクをブラウザで開きます。アプリケーションをインストールする標準アカウントを選択します。
- アプリを接続をクリックします。結果のタブは閉じて構いません。
プライベートアプリを使用する
HubSpotプライベートアプリケーショントークンを使用して接続するには、AuthSchemeプロパティを"PrivateApp"に設定します。
以下の手順に従ってプライベートアプリケーショントークンを生成できます:
- HubDBアカウントで、メインナビゲーションバーの設定アイコン(歯車)をクリックします。
- 左サイドバーメニューで、統合 > プライベートアプリに移動します。
- プライベートアプリを作成をクリックします。
- 基本情報タブで、アプリケーションの詳細(名前、ロゴ、説明)を設定します。
- スコープタブで、プライベートアプリケーションがアクセスできるようにしたい各スコープに対して読み取りまたは書き込みを選択します。
- テーブルにアクセスするには、最低限hubdbとcrm.objects.owners.readが必要です。
- アプリケーションの設定が完了したら、右上のアプリを作成をクリックします。
- アプリケーションのアクセストークンに関する情報を確認し、作成を続行をクリックし、その後トークンを表示をクリックします。
- コピーをクリックして、プライベートアプリケーショントークンをコピーします。
接続するには、PrivateAppTokenを取得したプライベートアプリケーショントークンに設定します。
-
「Test Connection」をクリックします。
-
「USERS」 -> Add をクリックして、新しいユーザーを追加し、適切な権限を指定します。
-
API タブをクリックして OData API エンドポイントが生成されていることを確認します。
コネクションとOData エンドポイントを設定したら、TēPs からHubDB データに接続できます。
フレーズを作成
それではTēPs 側で連携用のフレーズ(一連の処理をまとめたもの)を作成していきましょう。
- フレーズ一覧画面で「+」ボタンをクリックし
- 任意の名前のフレーズを作成します。今回は定期的に実行するフレーズとして構成していきます。
CData Connect Server の接続を追加する
フレーズを作成したら処理を追加していきます。
- 最初にHubDB からデータを取得するので「+」ボタンから「CData Connect Cloud」→「OData テーブルを検索」を指定します。ちなみに「OData テーブルレコードを取得」はキーを元に1レコードだけ取得する処理になります。
- 「OData テーブルを検索」を追加したらコネクションを追加します。
- 以下の画面でCData Connect Server のメールアドレスとパスワードを指定して「アカウントを追加」をクリックしましょう。
- コネクションを設定するとOData テーブルが選択できるようになります。一覧から先程追加したテーブルを指定しましょう。
- ちなみに「OData テーブルを検索」は様々な条件でデータが取得できます。
ループ処理の追加
次に取得したテーブルデータをループする処理を追加します。
- 新しい処理から「フロー」→「ループ」を選択します。
- ループを追加したら、シーケンスで「OData テーブルを検索」からループする対象のリストを選びましょう。
kintone への登録処理を作成
最後にループの中でkintone への登録処理を作成します。
- 新しい処理として「キントーン」→「レコードを登録」を追加します。
- キントーンへのコネクションを追加します。
- 「サブドメイン」「アプリID」「APIトークン」を指定してコネクションを作成します。
- コネクションを作成すると、以下のようにkintone のアプリに存在する項目が表示されるので、CData Connect Server の項目をマッピングしていきましょう。
フレーズの実行
これでフレーズの作成は完了です。それでは画面右上の再生ボタンからフレーズを実行してみましょう。
- 画面右上の再生ボタンをクリックします。
- 以下のようにメッセージが表示されるので内容を確認して「実行」をクリックします。
- 以下のように実行ログが表示されていき、無事kintone にデータが登録できました!
このように、CData Connect Serverを経由することで、API 側の複雑な仕様を意識せずにTēPs 各種クラウドサービスと連携できます。他にも多くのデータソースに対応するCData Connect Server の詳細をこちらからご覧ください。