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 |
網址字串 | 取得託管的圖片網址 |
renderVideo (Beta) |
事件的 Generator |
渲染影片並追蹤進度 |
renderAndWaitVideo (Beta) |
網址字串 | 渲染影片並取得它的 MP4 網址 |
createVideo (Beta) |
已建立影片的陣列 | 不等待就開始影片,並立即取得它的 ID |
getVideo (Beta) |
影片陣列 | 依 ID 讀取影片的狀態和 MP4 網址 |
watchVideo (Beta) |
事件的 Generator |
依 ID 再次追蹤影片的進度 |
generateImageSignedUrl |
網址字串 | 建立一個在有人開啟時渲染的連結 |
前三個方法請見建立圖片和 PDF,影片方法請見渲染影片,最後一個請見簽署網址。
處理錯誤
除了 generateImageSignedUrl 之外,每個方法都會回傳含有 result 鍵或 error 鍵的陣列,兩者不會同時出現。
['result' => '...']
['error' => ['code' => 'NOT_FOUND', 'message' => '...', 'docs' => '...', 'requestId' => '...']]
API 回傳的錯誤包含全部四個鍵。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 的基本網址 |
timeout |
60.0 |
請求逾時時間,單位為秒 |
延伸閱讀
- 在 PHP 中生成動態圖片:用 cURL 或這個 SDK 渲染橫幅和商品圖片。
- 在 PHP 中用 JSON 生成動態發票 PDF:用你的帳單資料填入表格,並取得託管的 PDF 連結。