連携
n8n を接続する
n8n に Bannerify のコミュニティノードをインストールし、ワークフローで画像と PDF を描画する方法を説明します。
Bannerify ノードは、テンプレートを描画し、ファイルのリンクを返します。ノードに届いたアイテムごとに 1 回ずつ実行されるため、20 個のアイテムを受け取ったノードは、20 個のファイルを作ります。パッケージは、npm の n8n-nodes-bannerify です。
オペレーション
| オペレーション | 出力 | フィールド |
|---|---|---|
| Render Image | PNG、JPEG、WebP ファイル | Template、Format、Modifications JSON |
| Render PDF | PDF ファイル | Template、Modifications JSON |
どちらのオペレーションも、url フィールドを含むオブジェクトを返します。Bannerify はファイルを CDN に保存し、ファイル 1 つにつき 1 回の生成として数えられます。
前提条件
- コミュニティノードをインストールできる n8n アカウント。n8n では、Owner と Admin のロールに限られます。
- Bannerify の API キー。
- 名前付きのレイヤーがあるテンプレート。名前が重要な理由は、Modificationsで説明しています。
ノードをインストールする
- n8n で Settings、Community nodes の順に開きます。
- Install をクリックします。
- npm のパッケージ名として、
n8n-nodes-bannerifyを入力します。 - 未検証のコードに関するリスクの確認を承諾し、Install をクリックします。
API キーを追加する
- ワークフローに Bannerify ノードを追加し、そのための新しい認証情報を作成します。認証情報の種類は Bannerify API です。
- API Key にキーを貼り付けます。
- API Base URL は
https://api.bannerify.coのままにします。 - 認証情報を保存します。
ファイルを描画する
- Operation として、Render Image または Render PDF を選びます。
- Template で、テンプレートを選びます。ノードは、キーを持つワークスペースのテンプレートを読み込みます。
- Render Image では、Format を選びます。初期値は PNG で、ほかに JPEG と WebP を選べます。
- Modifications JSON に、値を入力します。前のノードのデータを読み取るには、式を使います。
{
"headline": "{{ $json.title }}",
"photo": { "src": "{{ $json.imageUrl }}" }
}
- ノードを実行します。各出力アイテムには、
urlフィールドが含まれます。
このフィールドは、キーがレイヤー名のオブジェクト、または API が使う配列を受け付けます。各レイヤーの種類が読み取るフィールドは、Modificationsにまとめています。
描画に失敗すると、ノードはワークフローを停止します。ノードを「エラー時に続行」に設定すると、失敗したアイテムには、エラーメッセージを含む error フィールドが入ります。
レシピ: フォームの回答を PDF にする
- Webhook トリガーを追加し、フォームツールをその URL に向けます。
- Bannerify ノードを追加し、Render PDF を選びます。Modifications JSON で、回答をレイヤー名にマップします。
- Send Email ノードを追加し、メッセージに
urlを入れます。
トラブルシューティング
| 問題 | 対処 |
|---|---|
| Template のリストが空 | API キーが、テンプレートを持つワークスペースのものであること、API Base URL が https://api.bannerify.co であることを確認します |
| レイヤーが変わらない | エディターでレイヤー名を確認します。名前は大文字小文字を区別し、存在しない名前は API に無視されます |
| ノードが JSON エラーで失敗する | Modifications JSON が有効な JSON であることを確認します |
| ノードが使用量の上限のメッセージで失敗する | ワークスペースが日次または月間の上限に達しました。アイテム 1 つにつき 1 回の生成として数えられます。クォータと制限を参照してください |