特徴
- 複数の認証方式対応 — OAuth 2.0(ユーザー個別アクセス)、Service Account(サーバー間通信)、API キー(公開データ)
- 流暢な API — メソッドチェーンで直感的にデータ操作
- Laravel Collection 統合 — Google Sheets のデータを Laravel Collection に変換。配列処理が簡単
- 拡張性 — マクロシステムでファサードにカスタムメソッド追加可能
- Google Drive 統合 — スプレッドシート管理や一覧表示
一般的な使用場面
- ユーザーダッシュボード — Google Sheets データを表示・操作
- データインポート/エクスポート — Laravel アプリと Google Sheets 間の大量データ移行
- 自動レポート生成 — レポートをプログラムで生成・更新
- マルチユーザーアプリケーション — ユーザーが個別の Google Sheets を管理
設計思想
このパッケージの主な目的は Google Sheets からの読み込み です。読み込み前に細かい条件を指定するのではなく、まず Laravel Collection として全データを取得し、その後 Laravel 側でデータ処理する設計になっています。システム要件
- PHP >= 8.3
- Laravel >= 12.0
インストール
Google API を有効化
Google Cloud Console で以下の API を有効にします:
- Google Sheets API
- Google Drive API
認証方式を選択・設定
3 つの方式から選んで設定します:
- Service Account — サーバー間通信・自動化タスク向け
- OAuth 2.0 — ユーザー個別アクセス向け
- API キー — 公開データのみ
認証方式の選択
| 方式 | 用途 | ユーザー操作 | アクセス範囲 | 難易度 |
|---|---|---|---|---|
| Service Account | サーバー間通信・自動化 | 不要 | 共有されたスプレッドシート | 中 |
| OAuth 2.0 | ユーザー向けアプリ | 同意が必要 | ユーザー個別シート | 高 |
| API キー | 公開データのみ | 不要 | 公開スプレッドシートのみ | 低 |
基本的な使い方
次のスプレッドシート構造の例を考えてみましょう。| id | name | |
|---|---|---|
| 1 | name1 | mail1 |
| 2 | name2 | mail2 |
https://docs.google.com/spreadsheets/d/{spreadsheetID}/...
spreadsheetIdはURLから取得してください。
サービスアカウント
サービスアカウント認証を使用する場合、トークンの設定は不要です。OAuth
OAuth認証を使用する場合、ユーザーのアクセストークンを設定する必要があります。ヘッダーをキーとしてシートの値を取得する(推奨)
コレクションの変換は簡単で、その後の処理も柔軟に対応できるため、この方法をお勧めします。A1表記法の使用
A1表記について
A1表記は、Googleスプレッドシートでセルまたは範囲を指定する標準的な方法です(例:「A1」、「A1:B2」)。- 「A1」は、A列1行目のセルを指します。
- 「A1:B2」は、セルA1からB2までの範囲(四角形)を指します。
- 「A:B」は、A列とB列のすべての行を指します。
次のステップ
- Service Account 認証 — 最も一般的な方式
- OAuth 2.0 認証 — ユーザー個別アクセス
- laravel-google-sheets
- デモプロジェクト — Laravel 5.5 から 13 まで対応例
- 関連パッケージ: Google Search Console API for Laravel