ナビゲーション

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 リクエストのタイムアウト (秒)

関連情報