PHPを使用してBuildVuマイクロサービスにアクセスする
以下のチュートリアルでは、ホスティングされたBuildVu cloud APIを使用してPDFファイルをHTMLまたはSVGに変換する方法を説明します。利用できるサービスには以下のようなものがあります:
- IDRsolutionsのトライアルおよびクラウドサブスクリプションサービス
- 独自のセルフホスト型BuildVuマイクロサービス
上記のサービスは通常のHTTPリクエストでもアクセスできますが、このチュートリアルではオープンソースのPHP IDRCloudClient を使用します。このクライアントはREST API のシンプルなPHPラッパーを提供します。
composerを使用して、以下のコマンドでidrsolutions-php-clientパッケージ をインストールします:
composer require idrsolutions/idrsolutions-php-client
以下は、PDFファイルをHTMLまたはSVGに変換するための基本的なコード例です。設定オプションや高度な機能については後述します。
<?php
require_once __DIR__ . "/PATH/TO/vendor/autoload.php";
use IDRsolutions\IDRCloudClient;
$endpoint = "https://cloud.idrsolutions.com/cloud/" . IDRCloudClient::INPUT_BUILDVU;
$parameters = array(
//'token' => 'Token', // Required only when connecting to the IDRsolutions trial and cloud subscription service
'input' => IDRCloudClient::INPUT_UPLOAD,
'file' => __DIR__ . 'path/to/file.pdf'
);
$results = IDRCloudClient::convert(array(
'endpoint' => $endpoint,
'parameters' => $parameters
));
IDRCloudClient::downloadOutput($results, __DIR__ . '/');
echo $results['downloadUrl'];
BuildVuマイクロサービスは、変換完了時に変換のステータス
を送信するコールバックURLを受け付けます。コールバックURLを使用することで、変換が完了したかどうかを判断するためにサービスをポーリングする必要がなくなります。
コールバックURLは以下のようにparameters配列に提供できます。
$parameters = array(
//'token' => 'Token', // Required only when connecting to the IDRsolutions trial and cloud subscription service
'input' => IDRCloudClient::INPUT_UPLOAD,
'callbackUrl' => 'http://listener.url',
'file' => __DIR__ . 'path/to/file.pdf'
);
BuildVu APIは、変換をカスタマイズするためのキーと値のペアを含む文字列化されたJSONオブジェクトを受け付けます。設定はparameters配列に追加する必要があります。PDFファイルをHTMLまたはSVGに変換するための設定オプションの完全なリストはこちら で確認できます。
'settings' => '{"key":"value","key":"value"}'
ローカルファイルのアップロードに加えて、BuildVuマイクロサービスがダウンロードして変換を実行するURLを提供することもできます。これを行うには、parameters配列のinputとfileの値を以下のように置き換えます。
'input' => IDRCloudClient.DOWNLOAD
'url' => 'http://exampleURL/exampleFile.pdf'
PDFファイルをHTMLまたはSVGに変換するためにユーザー名とパスワードが必要な独自のBuildVuマイクロサービスをデプロイしている場合、各変換でそれらを提供する必要があります。以下のように、parameters配列にusernameとpasswordという名前の2つの変数を追加することで提供します。
'username' => 'Username_If_Required',
'password' => 'Password_If_Required',
この場合、downloadOutputメソッドにも認証値を提供する必要があります。
IDRCloudClient::downloadOutput($results, __DIR__ . '/','newFileName','username','password');
GitHub上のIDRCloudClient
Packagist上のIDRCloudClient
BuildVuマイクロサービスAPI
BuildVuマイクロサービスの使用方法
