피드로 돌아가기
How I built automated Google Business Profile(GBP) posting with the GBP API (and what I learned)
Dev.toDev.to
Backend

Vercel Cron과 OAuth 2.0 기반의 GBP 자동 포스팅 시스템 설계

How I built automated Google Business Profile(GBP) posting with the GBP API (and what I learned)

Vinit Gohil2026년 6월 18일5intermediate

Context

로컬 비즈니스 운영자의 일관성 없는 포스팅 습관으로 인한 검색 순위 하락 문제 해결 필요. 매주 반복되는 단순 작업의 마찰력을 제거하기 위한 자동화된 스케줄링 시스템 구축 요구.

Technical Solution

  • Vercel Cron을 활용한 UTC 03:30 매주 월요일 자동 트리거 구조 설계
  • prompt: 'consent' 설정을 통한 Refresh Token 강제 확보로 세션 만료 문제 해결
  • getValidGbpToken 헬퍼 함수를 구현하여 API 호출 전 Access Token 유효성 검증 및 자동 갱신 로직 적용
  • Prisma와 Neon DB를 통한 User별 Connection Token 및 포스팅 이력 상태 관리
  • Promise.allSettled를 이용한 다수 사용자 대상 비동기 병렬 처리 및 개별 실패 격리
  • Google Business Profile API v4 기반의 localPosts 엔드포인트를 통한 자동 콘텐츠 발행

- Google OAuth 구현 시 `access_type: 'offline'`와 `prompt: 'consent'`를 조합하여 Refresh Token 유실 방지 - API 제공처의 문서가 파편화된 경우 v3/v4 버전 차이를 확인하고 최신 엔드포인트 직접 검증 - 외부 API 연동 시 Token Expiry 체크 로직을 추상화한 헬퍼 함수를 통해 비즈니스 로직과 인증 로직 분리 - 다량의 API 요청 처리 시 개별 요청의 성공/실패가 전체 프로세스에 영향을 주지 않도록 `allSettled` 패턴 적용

원문 읽기