특징
- 여러 인증 방식 지원 — 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