ナビゲーション

JavaScript

JavaScript SDK

bannerify-js パッケージで、画像と PDF を生成する方法を説明します。

bannerify-js は、JavaScript と TypeScript 向けの Bannerify クライアントです。すべてのオプションに型があり、エラーを値として返すため、リクエストが失敗しても例外は投げられません。

インストール

Examples

Open only what you need

npm
npm install bannerify-js
pnpm
pnpm add bannerify-js
yarn
yarn add bannerify-js
bun
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