PR

【Next.jsブログ構築】お問い合わせページにGoogleフォームを設定する方法

Next.jsブログのお問い合わせページにGoogleフォームを設定している様子を表したイラスト VPS・RentalServer
この記事は約10分で読めます。
記事内に広告が含まれています。
スポンサーリンク

前回の第21回で、お問い合わせページ(/contact)を新規作成しました。

ただ、あの時点ではページの「器」だけを用意した状態で、フォーム本体となる Google フォームはまだ作成していませんでした。
そのためページを開くと「準備中」と表示されたままになっていました。

今回はその続き作業として、Google フォームを実際に作成し、お問い合わせページに設定するところまでを解説します。

この記事でわかること:

  • Google フォームでお問い合わせフォームを作成する手順
  • メールアドレスの入力形式チェック(バリデーション)の設定方法
  • 回答が届いたときの通知メールの設定方法
  • app/contact/page.tsx に Google フォームの URL を設定する方法

前提条件

この記事は以下の環境・進捗を前提として解説しています。

  • Next.js 15 系(React 19)の App Router を使用
  • VPS 上でサーバーモード(PM2)で動作
  • シリーズ第21回までを完了し、app/contact/page.tsx がすでに存在すること

app/contact/page.tsx の中には、CONTACT_FORM_URL という変数が用意されています。
ここに Google フォームの URL を設定することで、ページのボタンが機能するようになります。

なぜ Google フォームを使うのか

お問い合わせフォームを実装する方法はいくつかあります。
Next.js のサーバーモードであれば、API Route と nodemailer を組み合わせたフォーム送信も実装可能です。

しかし、今回は Google フォームを使うことにしました。理由は3つあります。

理由①:サーバー側の実装が不要

Google フォームは Google のサーバー上で動くため、こちら側でメール送信の処理を実装する必要がありません。
nodemailer の設定やメールサーバーの構成といった複雑な作業が発生しません。

理由②:無料で制限なく使える

Google フォームは Google アカウントがあれば無料で使えます。
回答数の制限もありません。

理由③:スパム対策になる

メールアドレスを直接ページに掲載するとスパムの原因になります。
Google フォームを経由することで、メールアドレスを公開せずにお問い合わせを受け取れます。

読者に個人情報は漏れないか

Google フォームを使う際に気になるのが「自分の Google アカウントやメールアドレスが読者に見えてしまわないか」という点です。

結論として、通常の設定であれば読者にアカウント情報もメールアドレスも表示されません。

項目読者に見えるか
Google アカウント名見えない
Gmail アドレス見えない
フォームのタイトル・質問内容見える(自分で設定した内容のみ)
送信後のお礼メッセージ見える(自分で設定した内容のみ)

回答者への確認メールを送る機能を使う場合も、送信元は forms-receipts-noreply@google.com という Google の公式アドレスになります。

今回作成するフォームの構成

作成するお問い合わせフォームの内容は以下のとおりです。

項目形式必須
お名前短文テキスト必須
メールアドレス短文テキスト(メール形式チェックあり)必須
お問い合わせ内容長文テキスト必須

シンプルな3項目構成にしました。
項目が増えるほど送信完了率が下がります。
お問い合わせフォームでは必要最小限にとどめるのが適切です。

STEP 1:Google フォームを開く

ブラウザで以下の URL にアクセスします。

https://forms.google.com

Google アカウントにログインした状態で開くと、Google フォームのトップページが表示されます。

「+(空白)」をクリックすると新しいフォームの作成画面が開きます。

Googleフォームのトップページ。「新しいフォームを作成」から「空白のフォーム(+)」を選択する画面

Google フォームのトップページの画面です。
あらかじめ用意されたテンプレートも多数ありますが、今回は「+(空白)」ボタンをクリックして、新規にフォームを作成します。

Gemini(AI)による作成画面が表示された場合

フォームを開くと、AI がフォームを自動生成するための画面(Gemini)が表示される場合があります。
今回は手動で作成するため、画面右上の「×」をクリックして閉じてください。
「×」を閉じると通常の編集画面に切り替わります。

STEP 2:タイトルと説明を入力する

通常の編集画面が表示されたら、まずフォームのタイトルと説明を設定します。

新規作成した直後のGoogleフォームの編集画面。「無題のフォーム」と表示されている状態

「+(空白)」ボタンをクリックすると、「無題のフォーム」という画面が表示されます。
ここからフォームのタイトルや、質問事項を設定していきます。

「無題のフォーム」と書かれた部分をクリックして、以下のように入力します。

タイトル:

お問い合わせ

その下の「フォームの説明」をクリックして、以下のように入力します。

説明文:

ご質問・ご意見・ご感想などをお気軽にお送りください。内容を確認後、メールにてご返信いたします。

タイトルはフォームページの一番上に表示されます。
説明文は「何のフォームか」と「返信についての案内」を簡潔に伝える文章にしました。

STEP 3:質問を追加する

次に、3つの質問を設定します。

質問① お名前

最初から「無題の質問」が1つ作成されているので、それを修正して使います。

  1. 「無題の質問」をクリックして お名前 と入力する
  2. 右側のドロップダウン(「ラジオボタン」と表示されている)をクリックして 記述式 を選ぶ
  3. 右下の「必須」トグルをクリックしてオンにする(紫色になる)

「記述式」は1行のテキスト入力欄です。お名前のような短い入力に適しています。

質問② メールアドレス

右側の「+」ボタンをクリックして新しい質問を追加します。

  1. 質問名に メールアドレス と入力する
  2. ドロップダウンで 記述式 を選ぶ
  3. 「必須」トグルをオンにする
  4. 質問欄右下の「︙(縦三点)」をクリックして「回答の検証」を選ぶ
  5. 表示された設定欄で、左のドロップダウンを テキスト、右のドロップダウンを メールアドレス に設定する
Googleフォームの編集画面。「メールアドレス」の項目を必須にし、「回答の検証」から入力形式をメールアドレスに設定している様子

メールアドレスの入力欄は、「必須」にしておき、「︙(縦三点)」をクリックして「回答の検証」を選んでおきましょう。

「回答の検証」(バリデーション)とは、入力値が正しい形式かどうかを自動チェックする機能です。
「メールアドレス」を選ぶと、@ が含まれていない入力に対してエラーメッセージが自動表示されます。
入力ミスによって返信できなくなるリスクを減らせます。

「カスタムのエラーテキスト」という欄は空欄のままで問題ありません。
空欄の場合、Google フォームのデフォルトのエラーメッセージが表示されます。

質問③ お問い合わせ内容

再度「+」ボタンをクリックして3つ目の質問を追加します。

  1. 質問名に お問い合わせ内容 と入力する
  2. ドロップダウンで 段落 を選ぶ
  3. 「必須」トグルをオンにする

「段落」は複数行のテキスト入力欄です。お問い合わせ内容のような長文の入力に適しています。

STEP 4:送信後のメッセージを設定する

フォームを送信した後に表示されるメッセージを設定します。

  1. 画面上部の「設定」タブをクリックする
  2. 「表示設定」の「∨」マークをクリックして展開する
  3. 「確認メッセージ」の右にある「編集」をクリックする
  4. 以下のメッセージに書き換える
お問い合わせありがとうございます。内容を確認後、メールにてご返信いたします。返信まで数日お時間をいただく場合があります。

デフォルトは「回答を記録しました。」という無機質なメッセージです。
送信後に何も案内がないと読者が不安になるため、返信の目安を伝えるメッセージに変更しました。

同じ画面に「別の回答を送信するためのリンクを表示」というトグルがあります。
オンになっている場合はオフにしてください。お問い合わせフォームでは重複送信を防ぐため、このリンクは不要です。

STEP 5:回答通知メールを設定する

誰かがフォームに回答したとき、自分の Gmail に通知が届くように設定します。

  1. 画面上部の「回答」タブをクリックする
  2. 右上の「︙(縦三点)」をクリックする
  3. 「新しい回答についてのメール通知を受け取る」をクリックする
Googleフォームの回答タブで「新しい回答についてのメール通知を受け取る」にチェックを入れている設定画面

画面上部の「回答」タブから「新しい回答についてのメール通知を受け取る」にチェックマーク(✓)を付けておきます。

チェックマーク(✓)が付いたら設定完了です。
以後、フォームに回答が届くたびに、フォームを作成した Google アカウントの Gmail に通知メールが届きます。

通知メールに届くのはあくまで「回答があった」という通知です。
回答の全文を確認するには Google フォームの管理画面にアクセスする必要があります。

STEP 6:フォームを公開して URL を取得する

右上の「公開」ボタンをクリックします。

「フォームの公開」という確認画面が表示されます。
回答者の設定が「リンクを知っている全員」になっていることを確認して、「公開」ボタン(紫色)をクリックします。

「リンクを知っている全員」は URL を持っている人なら誰でも回答できるという設定です。
お問い合わせフォームとして一般的な設定です。

公開後、「回答者へのリンクをコピー」という画面が表示されます。

Googleフォームの公開後に表示される「回答者へのリンクをコピー」画面

「回答者へのリンクをコピー」に表示された URL をコピーボタンでコピーして、メモ帳などに貼り付けておくと、あとでサイトにリンクを作成する際に便利です。

「URL を短縮」はチェックしなくて大丈夫です。
この URL はブログのコードの中に書くだけで読者に直接表示されないため、長さは影響しません。

「コピー」をクリックして URL をコピーします。

取得できる URL の形式は以下のようになります。

https://docs.google.com/forms/d/e/XXXXXXXXXXXX/viewform

URL の末尾に ?usp=publish-editor という文字列が付いている場合があります。
これは Google が内部的に付与するパラメーターです。
次のステップでコードに設定する際は、? 以降の文字列を除いた URL を使います。

STEP 7:contact/page.tsx に URL を設定する

VPS に SSH 接続して、以下のコマンドでファイルを開きます。

nano ~/example-blog/app/contact/page.tsx

ファイルの8行目付近に以下の行があります。

const CONTACT_FORM_URL = '';

この行を以下のように書き換えます。
'' の中に、STEP 6 でコピーした URL を貼り付けてください。

const CONTACT_FORM_URL = 'https://docs.google.com/forms/d/e/取得したフォームID/viewform';

あわせて、ファイル内にフォームの入力項目を案内するリストがあります。
デフォルトのコードには「氏名・メールアドレス・題名・メッセージ本文(任意)」という内容が書かれている場合があります。
実際に作成したフォームの項目と一致させるために、以下のように修正してください。

修正前:

<li>氏名</li>
<li>メールアドレス</li>
<li>題名</li>
<li>メッセージ本文(任意)</li>

修正後:

<li>お名前</li>
<li>メールアドレス</li>
<li>お問い合わせ内容</li>

編集が終わったら保存して閉じます。

Ctrl + O → Enter(保存)
Ctrl + X(終了)

STEP 8:ビルドしてデプロイする

変更が完了したら、ビルドしてデプロイします。

まず以下のコマンドでビルドします。

cd ~/example-blog && npm run build 2>&1 | tail -30

ビルドが成功すると、ルート一覧に /contact(Static)として表示されます。

○ /contact

は「Static(静的コンテンツとして生成済み)」を意味します。
エラーが出ていなければ、続けてデプロイします。

cd ~/example-blog && ./deploy.sh

STEP 9:動作確認

デプロイが完了したら、ブラウザでお問い合わせページにアクセスして確認します。

確認する内容は以下の3点です。

  • 「お問い合わせフォームを開く」ボタンが表示されていること
  • ボタンをクリックすると Google フォームが別タブで開くこと
  • フォームに「お名前」「メールアドレス」「お問い合わせ内容」の3項目が表示されていること
完成したNext.jsブログのお問い合わせページ。「お問い合わせフォームを開く」ボタンやフォームの入力項目が案内されている画面

完成後の Next.js サイトの「お問い合わせ」画面です。
「お問い合わせフォームを開く」のボタンを押すと、さきほど作成した Google フォームが開きます。

まとめ

Google フォームを使えば、サーバー側の複雑な実装なしにお問い合わせフォームを用意できます。
回答通知メールの設定まで含めても、作業時間は15分程度でした。

自分でお問い合わせフォームの仕組みをサイトに作ることもできますが、無料で多機能なフォームを利用できる Google フォームを使うと、非常に手軽に作成できます。

第21回で CONTACT_FORM_URL = '' という変数を先に用意しておいたことで、今回は URL を1行書き換えるだけで済みました。
コードの設計として、将来の変更を想定した変数管理にしておくと、このように後から楽に対応できます。

次回は SNS シェアボタンの実装を予定しています。
X(Twitter)や Facebook などへのシェアボタンを個別記事ページに追加します。

コメント

タイトルとURLをコピーしました