PHP
PHP SDK
bannerify/bannerify Composer パッケージで、画像と PDF を生成する方法を説明します。
bannerify/bannerify は、PHP 8.1 以降向けの Bannerify クライアントです。Guzzle を使い、エラーを値として返すため、リクエストが失敗しても例外は投げられません。
インストール
composer require bannerify/bannerify
クライアントを作成する
API キーが必要です。ダッシュボードの API Keys ページで作成し、サーバー側で管理してください。
<?php
require 'vendor/autoload.php';
use Bannerify\Client;
$client = new Client(getenv('BANNERIFY_API_KEY'));
画像を生成する
$result = $client->createImage('tpl_xxx', [
'modifications' => [
['name' => 'headline', 'text' => 'Summer sale'],
],
]);
if (isset($result['error'])) {
throw new RuntimeException($result['error']['message']);
}
file_put_contents('banner.png', $result['result']);
$result['result'] は、画像のバイト列を保持する文字列です。
メソッド
| メソッド | 結果 | 用途 |
|---|---|---|
createImage |
バイト列 | 画像のバイト列を取得する |
createPdf |
バイト列 | PDF を取得する |
createStoredImage |
URL の文字列 | ホスト済みの画像 URL を取得する |
renderVideo (Beta) |
イベントの Generator |
動画をレンダリングし、進行状況を追う |
renderAndWaitVideo (Beta) |
URL の文字列 | 動画をレンダリングし、MP4 の URL を取得する |
createVideo (Beta) |
作成された動画の配列 | 待たずに動画を開始し、その ID をすぐに取得する |
getVideo (Beta) |
動画の配列 | ID から、動画のステータスと MP4 の URL を読み取る |
watchVideo (Beta) |
イベントの Generator |
ID から、動画の進行状況をもう一度追う |
generateImageSignedUrl |
URL の文字列 | 開かれたときにレンダリングされるリンクを作る |
最初の 3 つは画像と PDF の作成で、動画のメソッドは動画のレンダリングで、最後の 1 つは署名付き URLで説明しています。
エラーを処理する
generateImageSignedUrl 以外のメソッドは、result キーまたは error キーのどちらかを持つ配列を返します。両方を持つことはありません。
['result' => '...']
['error' => ['code' => 'NOT_FOUND', 'message' => '...', 'docs' => '...', 'requestId' => '...']]
API が返すエラーには、4 つのキーがすべてあります。docs は、そのコードのページへのリンクです。リクエストについてサポートに問い合わせるときは、requestId を伝えてください。コードの一覧は、エラーにあります。
SDK は、いくつかのエラーを自分で作ります。これらには code、message、docs はありますが、requestId はありません。
| コード | 意味 |
|---|---|
INVALID_FORMAT |
形式が png、jpeg、webp のいずれでもない |
REQUEST_ERROR |
API が応答する前にリクエストが失敗した。たとえば、接続が切れた場合や、リクエストがタイムアウトを超えた場合 |
HTTP_ERROR |
API がエラーで応答したが、SDK が読み取れなかった |
TIMEOUT_ERROR |
動画のストリームが切れ、SDK が動画をもう一度読み取れなかった |
EXCEPTION |
SDK 内で起きた、そのほかの例外。message に例外のテキストが入ります |
generateImageSignedUrl は文字列を返し、形式がサポートされていない場合は InvalidArgumentException を投げます。
オプション
$client = new Client(getenv('BANNERIFY_API_KEY'), [
'timeout' => 30,
]);
| オプション | 既定値 | 説明 |
|---|---|---|
baseUrl |
https://api.bannerify.co/v1 |
API のベース URL |
timeout |
60.0 |
リクエストのタイムアウト (秒) |
関連情報
- PHP で動的な画像を生成する: cURL またはこの SDK で、バナーや商品画像をレンダリングします。
- PHP で JSON から動的な請求書 PDF を作る: 請求データから表を埋めて、ホスト済みの PDF リンクを取得します。