Next.js 14 の ImageResponse を使用して OGP 画像を動的生成する
Next.jsの標準機能であるImageResponseを使用して
X や Facebook 等のポストで表示されるOGP画像を動的生成する方法を紹介します。
API の作成
./app/api/og/route.tsx を作成し中に OGP 画像を動的生成するコードを書きます。
上記のように ImageResponse では div タグ内でスタイリングをします。
API の呼び出し
API が完成したので実際に各ページで呼び出してみましょう。
例として / ページの OGP を設定するために./app/layout.tsx 内に記述していきます。
ページの title や description を設定する Metadata に openGraph という項目を追加し中身の images の中に作成した API の URL を記述します。
API では title というパラメータを追加していたの URL へのパラメータ追加も忘れずにしましょう。
完成画像
Discord での確認ですが上記のような画像が自動生成され、OGP 画像として設定されます。
これにより各ページ(pages.tsx)に Metadata を設定することで、ページ別で違った文字を挿入した画像が OPG 画像として設定できます。
全体的な流れとしては以上です。