GoogleスプレッドシートをWebサービスのデータベース代わりに使うための初期設定
「データベースって難しそう...」そんなあなたに朗報です
実は、たった20分の設定で、Googleスプレッドシートがあなたのデータベースになります。
「お問い合わせフォームを作りたいけど、MySQLとかPostgreSQLとか、よく分からない...」「サーバーの設定とか、もう頭がパンクしそう...」
そんな悩み、今日で終わりです。
この記事を読めば、プログラミング初心者でも、お問い合わせフォームから送信されたデータを、Googleスプレッドシートに自動保存できるようにするための初期設定が完了します。しかも、スプレッドシートは非公開のまま、セキュアに運用できます。
所要時間: 約20分 難易度: ★★☆☆☆ (初心者OK!)
そもそも、なぜGoogleスプレッドシートを使うの?
従来のデータベースとの衝撃的な違い
| 項目 | 従来のDB (MySQL等) | Googleスプレッドシート |
|---|---|---|
| 初期設定 | 複雑 (サーバー構築必要) | 簡単 (Googleアカウントだけ) |
| コスト | サーバー代がかかる | 無料 |
| データ確認 | SQL文を書く必要あり | Excelのように直感的 |
| 学習コスト | 高い (挫折率80%超) | 低い (誰でもできる) |
| 初回起動までの時間 | 数日〜数週間 | 20分 |
つまり、小規模なWebサービスやプロトタイプ作成には、スプレッドシートが圧倒的に有利なんです!
実際、シリコンバレーのスタートアップも、初期段階ではスプレッドシートをデータベース代わりに使うことが多いんですよ。
この記事の全体像【重要】
まず、今からあなたが行う5つのステップを確認しましょう:
- Google Cloudプロジェクトを作成する (5分)
- Google Sheets APIを有効化する (3分)
- サービスアカウントを作成する (7分)
- 認証キー(JSON)をダウンロードする (3分)
- スプレッドシートに権限を付与する (2分)
合計: 約20分
「なんだか難しそう...」と思いましたか? 大丈夫です。一つ一つ、解説していきます。
「サービスアカウント」って何? ここで躓く人が90%
いきなり「サービスアカウント」という言葉が出てきて、混乱していませんか?
実は、ここを理解しないと、後で絶対に躓きます。
サービスアカウント = ロボット用のGoogleアカウント
簡単に言うと、「あなたの代わりに作業をしてくれるロボット専用のGoogleアカウント」です。
普段あなたが使っているGoogleアカウント(例: yamada.taro@gmail.com)は、人間が使うアカウントですよね。
一方、サービスアカウントは:
- プログラムが使うための専用アカウント
- 人間がログインすることはできない
- 特定の作業だけを自動で行う
【具体例】お問い合わせフォームの裏側で何が起きているか
例えば、お問い合わせフォームの場合、こんな流れになります:
- ユーザーがフォームに「名前: 山田太郎」「メール: yamada@example.com」「問い合わせ内容: 料金について知りたいです」を入力
- 送信ボタンをクリック
- サービスアカウント(ロボット)が、あなたのスプレッドシートにアクセス
- 自動的にデータを追加
- 完了!
あなたのGoogleアカウントのパスワードを使わずに、安全にデータを保存できるんです。
なぜサービスアカウントが必要なの?
「え、自分のGoogleアカウントじゃダメなの?」と思いましたよね。
ダメなんです。理由は2つ:
- セキュリティリスク: あなたのパスワードをプログラムに書き込むのは超危険
- 権限の問題: 人間用のアカウントは、プログラムからのアクセスを想定していない
だから、「スプレッドシートの読み書き専用」のロボット(=サービスアカウント)を作って、そのロボットに作業をさせるわけです。
ここまで理解できましたか? できていなくても大丈夫です。実際に手を動かしながら、徐々に理解していきましょう。
ステップ1: Google Cloudプロジェクトを作成する
Google Cloudって何?
「Google Cloud」は、Googleが提供するクラウドサービスのプラットフォームです。
「クラウドサービス」って何? という方も多いと思います。
超簡単に言うと、「インターネット上でいろいろなことができるサービス」です。
今回は、その中の「Google Sheets API」という機能を使います。
【実践】プロジェクトを作成しよう
では、実際に手を動かしましょう!
手順1: Google Cloud Consoleにアクセス
- ブラウザで https://console.cloud.google.com/ を開きます
- Googleアカウントでログインしてください
初めてアクセスする方へ: 利用規約の同意画面が出ますが、問題なければ同意してOKです。
手順2: 新しいプロジェクトを作成
- 画面上部の「プロジェクト選択」(またはプロジェクト名の部分)をクリック
- ポップアップが開くので、「新しいプロジェクト」ボタンをクリック
- プロジェクト名を入力 (例:
my-contact-formまたはお問い合わせフォーム) - 「作成」ボタンをクリック
ポイント: プロジェクト名は後から変更できないので、分かりやすい名前にしましょう!
所要時間: 約5分
ステップ2: Google Sheets APIを有効化する
APIって何? 秒速で理解する
「API」という言葉、よく聞きますよね。でも、初心者にとっては謎の言葉です。
API = Application Programming Interface
難しそうですが、実は超シンプル。
API = 「プログラム同士が会話するための窓口」
例えば、こんな感じです:
- あなたのWebサービス (Next.js): 「ねぇGoogle、スプレッドシートにデータを追加して!」
- Google Sheets API: 「了解! 今すぐやるね!」
つまり、APIを有効化しないと、プログラムがスプレッドシートと会話できないんです。
【実践】APIを有効化しよう
手順1: 左側のメニューから「APIとサービス」を選択
見つからない場合は、左上の「≡」(ハンバーガーメニュー)から探してください。
手順2: 「APIを有効化」 をクリック
手順3: 検索バーに「Google Sheets API」と入力
検索結果から「Google Sheets API」をクリック
手順4: 「有効にする」ボタンをクリック
製品の詳細ページに遷移するので、有効にするボタンをクリックする
おめでとうございます! これで、あなたのプロジェクトでGoogle Sheets APIが使えるようになりました!
所要時間: 約3分
ステップ3: サービスアカウントを作成する
ここが最も重要なパートです! 集中してください。
【実践】サービスアカウント(ロボット)を作ろう
手順1: 「APIとサービス」 > 「認証情報」へ移動
ステップ2のGoogle Sheets APIのページで有効化した後なら、そのページ上部に認証情報の作成ボタンがあるのでそれをクリック。
手順2: 「認証情報を作成」をクリック
手順3: 使用するAPIで「Google Sheets API」を選択
デフォルトでGoogle Sheets APIが選択されていますが、選ばれていない場合は 「Google Sheets API」を選んでください。
手順4: 「アクセスするデータの種類」でアプリケーションデータを選択なぜ「アプリケーションデータ」なのか?「ユーザーデータ」: アプリの利用者が自分のGoogleアカウントでログインして、その人のデータにアクセスする場合に使います(OAuth認証)。
「アプリケーションデータ」: サーバー(Next.jsのビルド環境など)が自動でデータを取りに行く場合に使います。これを選択することで、**「サービスアカウント」**が作成されます。
- サービスアカウント名:
spreadsheet-reader(分かりやすい名前でOK) - サービスアカウントID: 自動で生成されます (触らなくてOK)
- 説明: 「お問い合わせフォームのデータ保存用」など (任意)
手順5: 「作成して続行」をクリック
手順6: ロール(役割)の選択画面が表示される
ここは何も選ばずに「完了」をクリックしてOKです
なぜ? スプレッドシート側で個別に権限を設定するため、ここでは不要だからです。
おめでとうございます! サービスアカウント(ロボット)が誕生しました!
所要時間: 約7分
ステップ4: 認証キー(JSON)をダウンロードする
認証キー = ロボットの「身分証明書」
サービスアカウント(ロボット)が作業するには、「鍵」が必要です。
この鍵は、JSON形式のファイルとして提供されます。
JSON (ジェイソン) というのは、データを保存する形式の一つです。難しく考えず、**「ロボットの身分証明書みたいなもの」**だと思ってください。
【実践】JSONファイルをダウンロードしよう
手順1: 作成されたサービスアカウントをクリック
Google Sheets APIのAPI / サービスの詳細ページの中程にある「認証情報」タブを選択し、サービスメールアカウントのURLをクリック
手順2: 「鍵」タブをクリック
画面上部にあります。
手順3: 「鍵を追加」 > 「新しい鍵を作成」をクリック
手順4: 「JSON」を選択
「P12」という選択肢もありますが、「JSON」を必ず選んでください。
手順5: 「作成」ボタンをクリック
自動的にJSONファイルがダウンロードされます。
⚠️ 超重要: このJSONファイルは、絶対に他人に見せないでください! パスワードと同じくらい、いや、それ以上に大切なファイルです。
ダウンロードしたJSONファイルの中身【知っておくべきこと】
ファイルを開くと、こんな内容が書かれています:
{
"type": "service_account",
"project_id": "my-contact-form",
"private_key_id": "abc123...",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIE...",
"client_email": "spreadsheet-reader@my-contact-form.iam.gserviceaccount.com",
"client_id": "123456789",
...
}
特に重要なのは:
client_email: サービスアカウントのメールアドレス (ロボットのID)private_key: 認証用の秘密鍵 (ロボットのパスワード)
この2つを、後でNext.jsのプロジェクトで使います。
所要時間: 約3分
ステップ5: スプレッドシートに権限を付与する【ラスト!】
最後のステップです! もうすぐ完成です!
なぜこの作業が必要?
サービスアカウント(ロボット)を作っただけでは、まだスプレッドシートにアクセスできません。
スプレッドシート側で、「このロボットに作業を許可する」という設定が必要なんです。
例えるなら、ロボットを作っても、あなたの家の鍵を渡さないと、家の中に入れないのと同じです。
【実践】ロボットに鍵を渡そう
手順1: Googleスプレッドシートを開く
データを保存したいスプレッドシートを開きます。
まだ作っていない場合: 新規作成してください。
手順2: 「共有」ボタンをクリック
画面右上にあります。
手順3: サービスアカウントのメールアドレスを入力
先ほどダウンロードしたJSONファイルの中にある client_email をコピペ
例: spreadsheet-reader@my-contact-form.iam.gserviceaccount.com
注意: 必ず全部コピーしてください。一文字でも間違えると動きません。
手順4: 権限を選択
- 「閲覧者」: データを読むだけ
- 「編集者」: データの読み書きが可能
お問い合わせフォームの場合は「編集者」を選びましょう 読み込むだけで良いなら、観覧者を選択
手順5: 「送信」をクリック
「このユーザーに通知しますか?」と聞かれますが、チェックを外してOK (サービスアカウントはロボットなので、メールを受け取れません)
🎉 完了! これで、サービスアカウント(ロボット)があなたのスプレッドシートにアクセスできるようになりました!
所要時間: 約2分
よくある質問 (FAQ)
Q1: サービスアカウントは無料ですか?
A: はい、完全無料です。Google Cloudの無料枠で十分使えます。課金される心配はありません。
Q2: スプレッドシートは非公開のままでいいですか?
A: はい! 公開する必要は一切ありません。サービスアカウントだけに権限を付与すればOKです。
Q3: JSONファイルを紛失したらどうなりますか?
A: 再度「新しい鍵を作成」すれば、新しいJSONファイルをダウンロードできます。古い鍵は削除しておきましょう。
Q4: エラーが出ました...
A: 以下を確認してください:
- Google Sheets APIが有効になっているか
- スプレッドシートにサービスアカウントの権限が付与されているか (
client_emailが正しいか) - JSONファイルが正しくダウンロードできているか
Q5: 個人情報を扱っても大丈夫ですか?
A: サービスアカウントを使えば、スプレッドシートを非公開のまま運用できるので、基本的には問題ありません。ただし、本格的なサービスでは、より強固なデータベースを検討してください。
参考になるWeb記事
さらに理解を深めたい方は、以下の記事も参考にしてください:
- Google Cloud 公式ドキュメント: サービスアカウントの作成
- Google Sheets API 公式ドキュメント
- Next.jsでGoogle Sheets APIを使う方法 (Zenn)
- 環境変数の安全な管理方法 (.env.local)
まとめ
お疲れ様でした!
この記事では、Googleスプレッドシートをデータベース代わりに使うための、最も重要な準備作業を解説しました。
今日あなたができたこと:
- ✅ Google Cloudプロジェクトを作成
- ✅ Google Sheets APIを有効化
- ✅ サービスアカウント(ロボット)を作成
- ✅ 認証キー(JSON)をダウンロード
- ✅ スプレッドシートに権限を付与
これで、あなたは「データベース設定の壁」を乗り越えました!
この記事が役に立ったら、ブックマークして、友達にもシェアしてくださいね!
それでは、また次回の記事でお会いしましょう!