본문으로 건너뛰기

Google Sheets

B1 Export는 B1.church용 공식 Google Sheets 애드온입니다. 모든 스프레드시트에 사이드바를 추가하여 B1 교회에서 사람, 기부, 그룹 또는 출석을 명명된 탭으로 내보냅니다 — 필요할 때마다 한 번의 클릭으로 내보냅니다. 애드온은 사용자의 Google 계정 내에서 완전히 실행됩니다. 각 내보내기가 하는 읽기 전용 API 호출 외에는 ChurchApps 서버에 도달하지 않습니다.

시작하기 전에

  • 내보낼 스프레드시트에 대한 편집 권한이 있는 Google 계정
  • B1 API 키를 발급할 수 있는 교회 관리자(또는 내보낼 데이터에 대한 읽기 권한이 있는 사람)
  • Google Workspace Marketplace에서 설치된 B1 Export 애드온

내보낼 수 있는 항목

메뉴 항목시트 탭데이터
사람 내보내기B1 PeopleID, 표시 이름, 이름, 성, 이메일, 멤버십 상태
기부 내보내기B1 DonationsID, 사람 ID, 날짜, 금액, 방법, 배치 ID
그룹 내보내기B1 GroupsID, 이름, 카테고리, 멤버 수
출석 내보내기B1 AttendanceID, 사람 ID, 방문 날짜, 예배 ID, 그룹 ID

각 내보내기는 명명된 탭의 콘텐츠를 바꿉니다 — 내보내기를 다시 실행하면 추가된 행이 아닌 새로운 스냅샷을 얻습니다. 스프레드시트의 다른 탭은 영향을 받지 않습니다.

설정

1. 올바른 범위로 B1 API 키 생성

  1. B1Admin에서 설정 → 개발자 → API 키로 이동합니다.
  2. 새 API 키를 클릭하고 이름을 "Sheets Export"로 지정한 후 내보낼 항목의 읽기 범위를 부여합니다:
    • 사람 내보내기를 위한 people:read
    • 기부를 위한 donations:read
    • 그룹을 위한 groups:read
    • 출석을 위한 attendance:read
  3. 내보내기만 수행하는 키는 settings:write가 필요하지 않습니다 — 해당 범위는 웹훅을 등록하는 커넥터(Zapier / Make)에만 필요합니다. 이 키를 좁게 유지하세요.
  4. 저장하고 cak_… 키를 복사합니다.

2. 애드온 설치

  1. 내보낼 스프레드시트를 엽니다.
  2. 확장 프로그램 → 애드온 → 애드온 가져오기.
  3. B1 Export를 검색하고 설치합니다. Google은 시트 및 외부 HTTP에 대한 액세스를 부여하도록 요청합니다(애드온이 B1 API를 호출할 수 있도록).

설치 후 이 Google 계정으로 열려는 모든 스프레드시트의 확장 프로그램 메뉴 아래에 B1 Export 항목이 나타납니다.

3. 키 연결

  1. 확장 프로그램 → B1 Export → 연결…(또는 처음 열기 후 메뉴 모음에서 B1 Export → 연결...).
  2. API 키를 사이드바에 붙여넣고, 기본 URL을 https://api.churchapps.org로 둡니다(스테이징에 대해 테스트하는 경우 제외) 그리고 저장을 클릭합니다.
  3. 연결 테스트를 클릭합니다 — 녹색 "연결 성공"은 키가 작동함을 확인합니다.

키는 사용자별 속성(PropertiesService.getUserProperties())에 저장됩니다 — Google 계정에만 연결되며 시트에 기록되지 않으며 스프레드시트의 다른 편집자에게 보이지 않습니다.

내보내기 실행

다음 중 하나:

  • 메뉴에서확장 프로그램 → B1 Export → 사람 내보내기(또는 기부 / 그룹 / 출석)
  • 사이드바에서 — 사이드바 열기(연결...) 및 해당 데이터세트 버튼 클릭

토스트는 완료될 때 확인합니다 — "N 행이 'B1 People'에 기록됨."

위에 보고서 작성

내보낸 탭은 일반 Google Sheets 데이터입니다. 탭을 참조하는 자신의 분석을 작성하세요:

  • =SUMIF('B1 Donations'!E:E, "card", 'B1 Donations'!D:D)를 사용하여 카드 기부를 합계하는 요약 탭
  • =FILTER('B1 People'!A:F, 'B1 People'!F:F = "Member")를 사용한 멤버만 필터링된 보기
  • B1 Attendance에서 데이터를 가져오는 출석 추세의 차트

내보내기를 다시 실행하면 기본 탭이 새로고침되고 공식이 자동으로 업데이트됩니다.

반복적인 내보내기 예약

애드온은 기본적으로 온디맨드입니다. 주간 또는 월간 내보내기의 경우 Apps Script의 내장 시간 기반 트리거를 사용하세요:

  1. 스프레드시트의 확장 프로그램 → Apps Script(애드온의 바인딩 스크립트 열기).
  2. 왼쪽 사이드바의 ⏰ 트리거 아이콘을 클릭합니다.
  3. exportPeople(또는 내보내기 함수)에 대해 트리거 추가시간 기반 선택, 주 타이머, 예: 매주 월요일 오전 6시.

내보내기는 Google 계정 아래 백그라운드에서 실행됩니다. API 키가 회전되거나 취소되면 트리거가 다음 실패 시 이메일로 알려줍니다.

권한 및 개인정보

  • 애드온은 spreadsheets.currentonly(열려 있는 스프레드시트만 터치 가능) 및 script.external_request만 요청합니다(UrlFetchApp이 B1 API를 호출할 수 있도록). Drive, Gmail 또는 기타 Google 데이터를 볼 수 없습니다.
  • B1 API 키는 사용자별로 저장됩니다 — 같은 스프레드시트의 다른 편집자는 볼 수 없습니다.
  • 모든 B1 API 호출은 Authorization: Bearer cak_…로 HTTPS를 통해 이루어집니다.

문제 해결

  • "API 키 설정되지 않음" — **확장 프로그램 → B1 Export → 연결...**을 열고 키를 붙여넣으세요.
  • "B1이 API 키를 거부했습니다(401)" — 키가 취소되었거나 잘못되었습니다. 다시 발급하고 다시 붙여넣으세요.
  • "이 API 키는 /giving/donations에 대한 권한이 없습니다(403)" — 키에 donations:read가 없습니다. B1Admin에서 키의 범위를 업데이트하세요.
  • 실행 후 시트가 새로고침되지 않음올바른 탭 이름(B1 People 등)을 보고 있는지 확인하세요. 내보내기는 탭이 없으면 생성합니다.
  • "할당량 초과됨" — Apps Script는 UrlFetchApp에 대해 사용자별 일일 할당량을 부과합니다(일반적으로 하루에 수천 개의 호출). 많은 기록이 있는 큰 교회는 여러 날에 걸쳐 내보내기를 분할하거나 Make / 대용량 동기화를 위한 사용자 정의 통합을 사용해야 할 수 있습니다.

애드온 사용자 정의

애드온은 오픈소스입니다 — Apps Script 프로젝트는 B1Integrations/GoogleSheetsAddon/ 저장소에 있습니다. 우리가 내보내지 않는 열, 추가 데이터세트 또는 다른 출력 형식이 필요한 경우 거기에서 문제 또는 PR을 열어주세요.

참고도 보기