Python
Python SDK
bannerify Python パッケージで、画像と PDF を生成する方法を説明します。
bannerify は、Python 3.8 以降向けの Bannerify クライアントです。エラーを値として返すため、リクエストが失敗しても例外は発生しません。
インストール
Examples
Open only what you need
pip
pip install bannerifyuv
uv add bannerifyクライアントを作成する
API キーが必要です。ダッシュボードの API Keys ページで作成し、サーバー側で管理してください。
import os
from bannerify import BannerifyClient
client = BannerifyClient(os.environ["BANNERIFY_API_KEY"])
クライアントは HTTP のコネクションプールを保持します。終わったら client.close() を呼ぶか、クライアントをコンテキストマネージャーとして使ってください。
with BannerifyClient(os.environ["BANNERIFY_API_KEY"]) as client:
result = client.create_image("tpl_xxx")
画像を生成する
result = client.create_image(
"tpl_xxx",
modifications=[{"name": "headline", "text": "Summer sale"}],
)
if "error" in result:
raise RuntimeError(result["error"]["message"])
with open("banner.png", "wb") as file:
file.write(result["result"])
result["result"] に、画像のバイト列が入っています。
メソッド
| メソッド | 結果 | 用途 |
|---|---|---|
create_image |
bytes |
画像のバイト列を取得する |
create_pdf |
bytes |
PDF を取得する |
create_stored_image |
URL の文字列 | ホスト済みの画像 URL を取得する |
render_video (Beta) |
イベントのイテレーター | 動画をレンダリングし、進行状況を追う |
render_and_wait_video (Beta) |
URL の文字列 | 動画をレンダリングし、MP4 の URL を取得する |
create_video (Beta) |
作成された動画の dict | 待たずに動画を開始し、その ID をすぐに取得する |
get_video (Beta) |
動画の dict | ID から、動画のステータスと MP4 の URL を読み取る |
watch_video (Beta) |
イベントのイテレーター | ID から、動画の進行状況をもう一度追う |
generate_image_signed_url |
URL の文字列 | 開かれたときにレンダリングされるリンクを作る |
最初の 3 つは画像と PDF の作成で、動画のメソッドは動画のレンダリングで、最後の 1 つは署名付き URLで説明しています。
エラーを処理する
generate_image_signed_url 以外のメソッドは、result キーまたは error キーのどちらかを持つ dict を返します。両方を持つことはありません。
{"result": b"..."}
{"error": {"code": "NOT_FOUND", "message": "...", "docs": "...", "requestId": "..."}}
API が返すエラーには、4 つのキーがすべてあります。docs は、そのコードのページへのリンクです。リクエストについてサポートに問い合わせるときは、requestId を伝えてください。コードの一覧は、エラーにあります。
SDK は、いくつかのエラーを自分で作ります。これらには code、message、docs はありますが、requestId はありません。
| コード | 意味 |
|---|---|
INVALID_FORMAT |
形式が png、jpeg、webp のいずれでもない |
TIMEOUT |
リクエストがタイムアウトを超えた |
TIMEOUT_ERROR |
動画のストリームが切れ、SDK が動画をもう一度読み取れなかった |
REQUEST_ERROR |
API が応答する前にリクエストが失敗した。たとえば、接続が切れた場合 |
HTTP_ERROR |
API がエラーで応答したが、SDK が読み取れなかった |
EXCEPTION |
SDK 内で起きた、そのほかの例外。message に例外のテキストが入ります |
generate_image_signed_url は文字列を返し、形式がサポートされていない場合は ValueError を発生させます。
オプション
client = BannerifyClient(
os.environ["BANNERIFY_API_KEY"],
timeout=30.0,
)
| オプション | 既定値 | 説明 |
|---|---|---|
base_url |
https://api.bannerify.co/v1 |
API のベース URL |
timeout |
60.0 |
リクエストのタイムアウト (秒) |
Modification モデル
modification は dict です。bannerify の Modification モデルを渡すこともでき、クライアントが変換します。
from bannerify import Modification
client.create_image("tpl_xxx", modifications=[Modification(name="headline", text="Hello")])