JavaScript
JavaScript SDK
bannerify-js パッケージで、画像と PDF を生成する方法を説明します。
bannerify-js は、JavaScript と TypeScript 向けの Bannerify クライアントです。すべてのオプションに型があり、エラーを値として返すため、リクエストが失敗しても例外は投げられません。
インストール
Examples
Open only what you need
npm
npm install bannerify-jspnpm
pnpm add bannerify-jsyarn
yarn add bannerify-jsbun
bun add bannerify-jsクライアントを作成する
API キーが必要です。ダッシュボードの API Keys ページで作成し、サーバー側で管理してください。
import { Bannerify } from "bannerify-js"
const bannerify = new Bannerify(process.env.BANNERIFY_API_KEY!)
createClient(apiKey) も、同じクライアントを返します。
画像を生成する
import { writeFile } from "node:fs/promises"
const { result, error } = await bannerify.createImage("tpl_xxx", {
modifications: [{ name: "headline", text: "Summer sale" }],
})
if (error) throw new Error(error.message)
await writeFile("banner.png", Buffer.from(result))
result は、画像のバイト列を保持する ArrayBuffer です。
メソッド
| メソッド | 結果 | 用途 |
|---|---|---|
createImage |
ArrayBuffer |
画像のバイト列を取得する |
createPdf |
ArrayBuffer |
PDF を取得する |
createStoredImage |
URL の文字列 | ホスト済みの画像 URL を取得する |
renderVideo (Beta) |
イベントの非同期イテレーター | 動画をレンダリングし、進行状況を追う |
renderAndWaitVideo (Beta) |
URL の文字列 | 動画をレンダリングし、MP4 の URL を取得する |
createVideo (Beta) |
動画 ID | 動画を開始し、その ID をすぐに取得する |
getVideo (Beta) |
動画のステータスと URL | ID から動画をもう一度読み取る |
watchVideo (Beta) |
イベントの非同期イテレーター | ID から動画の進行状況をもう一度追う |
generateImageSignedUrl |
URL の文字列 | 開かれたときにレンダリングされるリンクを作る |
最初の 3 つは画像と PDF の作成で、動画のメソッドは動画のレンダリングで、最後の 1 つは署名付き URLで説明しています。
エラーを処理する
generateImageSignedUrl 以外のメソッドは、result または error のどちらかを持つオブジェクトを返します。error を確認すると、TypeScript が型を絞り込みます。
const { result, error } = await bannerify.createImage("tpl_xxx")
if (error) throw new Error(`${error.code}: ${error.message}`)
console.log(result.byteLength)
error には、code、message、docs、requestId の 4 つのフィールドがあります。docs は、そのコードのページへのリンクです。リクエストについてサポートに問い合わせるときは、requestId を伝えてください。
SDK は、独自のコードを 2 つ追加します。INVALID_FORMAT は、画像の形式が png、jpeg、webp のいずれでもないことを示します。TIMEOUT_ERROR は、リクエストがタイムアウトを超えたことを示します。接続が切れたときなど、API が原因ではない失敗は、例外として投げられます。
generateImageSignedUrl は文字列を返し、形式がサポートされていない場合は例外を投げます。
オプション
const bannerify = new Bannerify(process.env.BANNERIFY_API_KEY!, {
timeout: 30_000,
})
| オプション | 既定値 | 説明 |
|---|---|---|
timeout |
60000 |
リクエストのタイムアウト (ミリ秒) |
baseUrl |
https://api.bannerify.co/v1 |
API のベース URL |
fetch |
グローバルの fetch |
テストやプロキシ用の、カスタムの fetch |