ガイド

Googleスプレッドシートをアプリに接続する方法

アプリをGoogleスプレッドシートに接続するには、Google CloudプロジェクトでGoogle Sheets APIを有効にし、サービスアカウントを作成し、そのサービスアカウントのメールアドレスにスプレッドシートを共有し、そのキーをサーバー側のシークレットとして保存します。サーバーは、spreadsheets.values.getで行を読み取り、spreadsheets.values.appendで行を追加します。ユーザーが自分のシートを接続する必要がある場合は、代わりにOAuthを使います。シートが完全に公開されている場合は、読み取りだけであれば単純なAPIキーで十分です。

このガイドでは、どの方法が適しているか、必要な呼び出し、上限と注意点、そしてAIアプリビルダーへのプロンプトを扱います。Googleの詳細は、2026年9月時点のGoogle開発者ドキュメントに基づきます。

そもそもシートを接続する理由

よくある理由は次のとおりです。

  • チームの作業フローを維持する。 スタッフが価格表やスケジュールをスプレッドシートで編集し続け、アプリがそれを表示します。
  • 人がすでに見ている場所でデータを集める。 新規登録、注文、フォームの回答が行として届きます。
  • レポート作成。 アプリのデータを、スプレッドシートで仕事をしている人のためにエクスポートします。
  • 次のステップへの足がかり。 スプレッドシートから始めて、本格的なデータベースへ移行します。スプレッドシートをアプリにする方法を参照してください。

Googleへの認証方法を選ぶ

Googleの認証情報のガイドでは、3種類が説明されています。

認証情報アクセスできる範囲最適な用途
APIキー公開されているデータのみ(「リンクを知っている全員」と共有されたファイルなど)公開シートの読み取り
サービスアカウントアプリが所有するデータ、またはサービスアカウントのメールアドレスと共有された特定のファイルアプリがご自身のシートを読み書きする
OAuthクライアントIDユーザーが同意した、そのユーザー自身のファイル各ユーザーが自分のシートを接続できるようにする

ほとんどのアプリでは、サービスアカウントが適しています。認証情報は1セットで、ご自身が所有し、明示的に共有したシートだけにアクセスできます。

サービスアカウントを使った手順

  1. Google Cloudプロジェクトを作成または選び、Google Sheets APIを有効にします。
  2. サービスアカウントとそのキーを作成します。キーはJSONファイルです。パスワードと同じように扱ってください。
  3. スプレッドシートを、サービスアカウントのメールアドレスと共有します。読み取り専用なら閲覧者、書き込むなら編集者として共有します。Googleのガイドでは、これは通常の共有画面から行うとされています。
  4. キーをサーバーのシークレットとして保存します。例:GOOGLE_SERVICE_ACCOUNT_JSONと、スプレッドシートID(シートのURLにある長い文字列)をSHEET_IDとして保存します。
  5. 使用する言語のGoogleクライアントライブラリで、サーバーからAPIを呼び出します。
  6. 多くの訪問者が同じデータを見る場合は、読み取りをキャッシュして、上限に達しないようにします。

使う呼び出し

Googleの値の読み書きガイドより:

メソッド働き
spreadsheets.values.getLeads!A1:Eのような1つの範囲を読み取る
spreadsheets.values.batchGet1回のリクエストで複数の範囲を読み取る
spreadsheets.values.update特定の範囲に書き込む
spreadsheets.values.append表の既存データの後ろに行を追加する

範囲はA1表記で指定します。Googleは、A1:B2のようにシート名を含まない範囲は最初のシートに適用されると注意しています。そのため、誰かがタブの順番を変えたときの予想外の動作を避けるため、タブ名を明示してください。

RAWとUSER_ENTERED

書き込みにはvalueInputOptionが必要です。

  • RAWは、送信したとおりのものをテキストとして保存します。=1+2はテキスト=1+2として保存されます。
  • USER_ENTEREDは、入力がシートに直接打ち込まれたかのように扱います。日付は日付になり、=1+2は数式になります。

アプリのユーザーが入力したテキストを書き込む場合は、RAWを使ってください。USER_ENTEREDでは、誰かが数式を送信すると、同僚がシートを開いたときにそれが実行されるおそれがあります。

上限とエラー

2026年9月時点で、Googleのシートの上限ページには次の値が記載されています。

上限読み取りリクエスト書き込みリクエスト
プロジェクトごと・毎分300300
ユーザーごと・プロジェクトごと・毎分6060

毎分の上限内に収まっている限り、1日あたりの上限はありません。超えると429: Too many requestsが返されます。Googleは切り捨て指数バックオフを推奨しています。失敗するたびに待ち時間を長くし、ランダムな遅延を加えて、最大値まで待つ方法です。1回のリクエストが180秒を超えると、タイムアウトします。

実際には、ページを表示するたびにAPIを呼び出さないでください。シートのデータを1分以上キャッシュし、batchGetで読み取りをまとめ、可能なら書き込みもまとめてください。

選択肢とトレードオフ

方法長所短所
ライブのデータソースとしてシートを使うスタッフが使い慣れたツールで編集できる。管理画面を作る必要がない上限がある。行ごとの権限がない。列名を変えるだけで壊れやすい
シートをデータベースに同期する読み取りが速く信頼できる。Sheetsが停止してもアプリは動く同期ジョブと、どちらが優先されるかのルールが必要
データベースを先に使い、シートにエクスポートするアプリがデータを所有する。シートはレポートになるシートでの編集はデータベースに戻らない
間にオートメーションツールを挟む単純な流れならコードは不要別のサブスクリプションが必要。デバッグが難しい

多くのユーザーや機密データを扱う場合は、データベースの方が信頼できる情報源です。データベースとはを参照してください。

AIビルダーに与えるプロンプト

シートを読み取る場合:

当社のGoogleスプレッドシートの「Menu」タブを、メニューページに表示してください。サーバーからGoogle Sheets APIを使い、JSONキーがシークレットGOOGLE_SERVICE_ACCOUNT_JSONに、スプレッドシートIDがSHEET_IDに保存されたサービスアカウントで認証してください。範囲Menu!A2:D(名前、説明、価格、カテゴリ)を読み取ってください。結果は5分間キャッシュしてください。APIが失敗した場合は、最後にキャッシュされたバージョンを表示してください。キーは決してブラウザに送らないでください。

行を書き込む場合:

お問い合わせフォームが送信されたら、データベースに保存するとともに、「Leads」タブに行を追加してください(日付、名前、メール、メッセージ)。spreadsheets.values.appendをvalueInputOption RAWで使ってください。Googleが429を返したら、指数バックオフで再試行してください。それでも失敗する場合は、リードをデータベースに保持し、後で再試行してください。

よくある間違い

  • サービスアカウントのメールアドレスにシートを共有し忘れる。 キーは正しくても、APIが権限エラーを返します。
  • キーをフロントエンドやリポジトリに置く。 JSONキーは、そのキーと共有されたすべてのシートへのアクセス権を持ちます。APIキーを安全に保つ方法を参照してください。
  • ユーザー入力にUSER_ENTEREDを使う。 数式の注入が起こり得ます。
  • すべてのリクエストでAPIを呼び出す。 最初のトラフィックのピークで毎分の上限に達します。
  • 列の位置に依存する。 誰かが列を挿入すると、アプリが誤ったデータを読みます。ヘッダー行を読み取って名前でマッピングするか、ヘッダーを固定してください。
  • 必要以上にシートを公開する。 「リンクを知っている全員」にすると、公開状態になります。
  • 複数ユーザーのデータベースとしてシートを使う。 同時書き込みや権限の欠如により、データが失われたり漏えいしたりします。

チェックリスト

  • Sheets APIを有効にし、サービスアカウントを作成した
  • 必要最小限の役割で、シートをサービスアカウントのメールアドレスと共有した
  • キーとシートIDをサーバー側のシークレットとして保存した
  • すべての呼び出しをサーバーから行っている
  • 範囲でタブ名を使っている
  • ユーザーが入力したテキストにはRAWを使っている
  • 読み取りをキャッシュし、429をバックオフで処理している
  • Sheetsが利用できなくてもアプリが適切に動く
  • どちらが信頼できる情報源かを決めた

MythexでのGoogleスプレッドシート

Mythexでは、Sheetsと連携する方法が2つあります。コネクタは、ご自身のGoogleアカウントをMythexに接続し、構築中にエージェントが使えるようにします。たとえば、シートを読み込んでそこからダッシュボードを作ることができます。ドキュメントによると、認証情報はMythexの接続サービスに保持され、コードには一切入りません(コネクタを参照し、Googleが求めるすべての権限を承認してください)。公開済みのアプリが単独でシートを読み書きする場合、確実な方法は、このガイドの方法です。つまり、サービスアカウントのキーをプロジェクトのシークレットとして保存し、サーバーからSheets APIを呼び出します(任意のAPIを統合するを参照)。シートでは足りなくなってきたら、エージェントに依頼してデータをプロジェクトのデータベースに移し、その上にダッシュボードを構築してください。

よくある質問

アプリから非公開のGoogleスプレッドシートを読むにはどうすればよいですか?

一般的な方法は、Google Cloudのサービスアカウントを使うことです。Google Sheets APIを有効にし、サービスアカウントとそのキーを作成したら、スプレッドシートをサービスアカウントのメールアドレスに閲覧者または編集者として共有します。サーバーがシークレットとして保存したキーを使って、Sheets APIを呼び出します。

Google APIキーでスプレッドシートにアクセスできますか?

公開されているデータに限られます。Googleの認証情報のガイドでは、APIキーは、リンクを知っている全員と共有されたファイルなど、公開で利用可能なデータへの匿名アクセス用とされています。非公開のシートにはサービスアカウントかOAuthが必要です。

Google Sheets APIの上限はどのくらいですか?

2026年9月時点で、Googleはプロジェクトごとに毎分300回の読み取りと300回の書き込み、ユーザーごと・プロジェクトごとに毎分60回ずつの読み取りと書き込みを挙げており、1日あたりの上限はありません。上限を超えると429エラーが返されます。Googleは、切り捨て指数バックオフの利用を推奨しています。

Googleスプレッドシートをアプリのデータベースとして使ってよいですか?

データを編集するユーザーがスプレッドシートも直接編集するような、小規模で利用の少ないアプリなら機能します。ユーザーが多い場合、頻繁な書き込みがある場合、レコード同士の関連がある場合、またはユーザーごとの権限が必要な場合は、本格的なデータベースの方が信頼性が高くなります。それでもスプレッドシートへのエクスポートは可能です。

Mythex · Pricing · AIでなんでも作ろう · ウェブサイト・アプリのテンプレート · Mythexを比較 · AIアプリ開発用語集 · AIアプリ開発の無料ツール · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)