各製品の資料を入手。
詳細はこちら →OData SDK for PHP を使ってHCL Domino のデータを取得
CData Connect Cloud を使えば、OData を使ってHCL Domino のデータにアクセスできます。CData Connect Cloud とOData PHP SDK を利用することで、HCL Domino のエンティティをPHP で取得して、オブジェクトとしてモデル化できます。
最終更新日:2022-11-25
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData Connect Cloud はHCL Domino のデータをWeb サービスとして公開します。 この記事の手順を実行することで、HCL Domino のデータをPHP オブジェクトとして扱うことができるようになります。
CData Connect Cloud はHCL Domino のデータへのクラウドベースのOData インターフェースを提供し、ODataPHP SDK からHCL Domino のデータへのリアルタイム連携を実現します。
Connect Cloud アカウントの取得
以下のステップを実行するには、CData Connect Cloud のアカウントが必要になります。こちらから製品の詳しい情報とアカウント作成、30日間無償トライアルのご利用を開始できますので、ぜひご利用ください。
Connect Cloud を構成
ODataPHP SDK でHCL Domino のデータを操作するには、Connect Cloud からHCL Domino に接続し、コネクションにユーザーアクセスを提供してHCL Domino のデータのOData エンドポイントを作成する必要があります。
HCL Domino に接続したら、目的のテーブルのOData エンドポイントを作成します。
(オプション)新しいConnect Cloud ユーザーの追加
必要であれば、Connect Cloud 経由でHCL Domino に接続するユーザーを作成します。
- 「Users」ページに移動し、 Invite Users をクリックします。
- 新しいユーザーのE メールアドレスを入力して、 Send をクリックしてユーザーを招待します。
- 「Users」ページからユーザーを確認および編集できます。
パーソナルアクセストークンの追加
OAuth 認証をサポートしていないサービス、アプリケーション、プラットフォーム、またはフレームワークから接続する場合は、認証に使用するパーソナルアクセストークン(PAT)を作成できます。きめ細かなアクセス管理を行うために、サービスごとに個別のPAT を作成するのがベストプラクティスです。
- Connect Cloud アプリの右上にあるユーザー名をクリックし、「User Profile」をクリックします。
- 「User Profile」ページで「Access Token」セクションにスクロールし、 Create PAT をクリックします。
- PAT の名前を入力して Create をクリックします。
- パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。
Connect Cloud からHCL Domino に接続
CData Connect Cloud では、簡単なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect Cloud にログインし、 Add Connection をクリックします。
- 「Add Connection」パネルから「HCL Domino」を選択します。
-
必要な認証プロパティを入力し、HCL Domino に接続します。
Domino への接続
Domino のデータに接続するには、以下のプロパティを設定してください。
- URL: Domino データベースをホスティングしているサーバーのホスト名、またはIP を入力します。サーバーのポート番号を含めてください。例えば、http://sampleserver:1234/。
- DatabaseScope: Domino Web UI 内のスコープ名を入力します。ドライバーは、ここで指定したスコープによって制御されるスキーマの、フォームとビューを公開します。Domino Admin UI で、サイドバーからScopes メニューを選択します。このプロパティを、既存のスコープ名に設定します。
Domino での認証
Domino は、ログインクレデンシャルまたはAzure Active Directory OAuth アプリケーションを使用した認証をサポートしています。
ログインクレデンシャル
ログインクレデンシャルで認証するには、以下のプロパティを設定してください:
- AuthScheme: これを"OAuthPassword" に設定します
- User: 認証するDomino ユーザーのユーザー名
- Password: 認証するDominoユ ーザーに関連付けられたパスワード
ドライバーはログインクレデンシャルを使用して、自動的にOAuth トークン交換を実行します。
AzureAD
この認証方法は、Azure Active Directory をIdP として使用してJWTトークンを取得します。Azure Active Directory にカスタムのアプリケーションを作成し、それをIdP として設定する必要があります。そのためには、ヘルプドキュメントの指示に従ってください。その後、以下のプロパティを設定します。
- AuthScheme: これを"AzureAD" に設定します
- InitiateOAuth: これをGETANDREFRESH に設定します。InitiateOAuth を使用すると、OAuth 交換の繰り返しやOAuthAccessToken の手動設定を避けることができます。
- OAuthClientId: カスタムOAuth アプリケーションのセットアップ時に取得したクライアントID
- OAuthClientSecret: カスタムOAuth アプリケーションのセットアップ時に取得したクライアントシークレット
- CallbackURL: アプリ登録時に定義したリダイレクトURI。例えば、https://localhost:33333
- AzureTenant: データにアクセスするために使用されるMicrosoft Online テナント。companyname.microsoft.com 形式の値またはテナントID のいずれかを指定してください。
テナントID は、Azure ポータルのAzure Active Directory > プロパティページに表示されているディレクトリID と同じです。
- Create & Test をクリックします。
- 「Add HCL Domino Connection」ページの「Permissions」タブに移動し、ユーザーベースのアクセス許可を更新します。
Connect Cloud にHCL Domino OData エンドポイントを追加する
HCL Domino に接続したら、目的のテーブルのOData エンドポイントを作成します。
- OData ページに移動し、 Add をクリックして新しいOData エンドポイントを作成します。
- HCL Domino 接続(例:Domino1)を選択し、Next をクリックします。
- 使用するテーブルを選択し、「Confirm」をクリックします。
コネクションとOData エンドポイントを設定したら、ODataPHP SDK からHCL Domino のデータに接続できます。
-
まずは、ODataPHP SDK を使用してCData Connect Cloud が公開したWeb サービスに接続するプロキシクラスを作成します。
URI 部分を書き換えて、次のようなコマンドを実行してください。
php C:\PHPLib\ODataphp\PHPDataSvcUtil.php /uri=https://your-server:8032/api.rsc/@your-personal-access-token/ /out=C:\PHPLib\ODataphp\DominoEntities.php
このコマンドは、OData エンドポイントが返すメタデータからクラスを定義して、指定したフォルダにクラスの定義を出力します。
CData Connect Cloud およびOData SDK for PHP は、どちらもフォームとWindows 認証をサポートします。CData Connect Cloud はOData エンドポイントへのアクセスが認可されたユーザーの認証に、パーソナルアクセストークンを使用します。パーソナルアクセストークンはHTTP Basic 認証の際に渡したり、OData URL に付加することで使用できます。
認証済みのユーザーは、CData Connect Cloud の管理コンソールのUsers セクションで設定できます。
-
これで、PHP のオブジェクト指向インターフェースを使ってHCL Domino のデータにアクセスできます。以下のコードはByName テーブルのレコードを作成してリアルタイムデータを取得し、新しく作成したレコードを表示します。
require_once 'DominoEntities.php'; try{ $svc = new CDataAPI(); $byname = new ByName(); $byname->City = 'Miami'; $svc->AddToByName($byname); $svc->SetSaveChangesOptions(SaveChangesOptions::None); $svc->SaveChanges(); $response = $svc->byname()->Execute(); foreach($response->Result as $byname) echo $byname->Name.""; } catch (Exception $e) { //CData Connect Cloud からのエラーをキャッチ echo $e->getError(), "\n"; }
おl>