Google Sheets
B1 Export — официальное дополнение Google Sheets для B1.church. Он добавляет боковую панель в любую электронную таблицу, которая экспортирует людей, пожертвования, группы или посещаемость из вашей церкви B1 в именованные вкладки — по требованию одним кликом. Дополнение работает полностью в учетной записи Google пользователя; ничего не касается серверов ChurchApps, кроме вызовов API только для чтения, которые делает каждый экспорт.
Перед началом
- Google аккаунт с правом редактирования электронной таблицы, в которую вы хотите экспортировать
- Администратор церкви (или кто-то с правом доступа к данным, которые вы хотите экспортировать), способный создать API-ключ B1
- B1 Export дополнение установлено из Google Workspace Marketplace
Что он экспортирует
| Пункт меню | Вкладка таблицы | Данные |
|---|---|---|
| Export People | B1 People | ID, Display Name, First, Last, Email, Membership Status |
| Export Donations | B1 Donations | ID, Person ID, Date, Amount, Method, Batch ID |
| Export Groups | B1 Groups | ID, Name, Category, Member Count |
| Export Attendance | B1 Attendance | ID, Person ID, Visit Date, Service ID, Group ID |
Каждый экспорт заменяет содержимое его именованной вкладки — повторный запуск экспорта дает свежий снимок, а не добавленные строки. Другие вкладки в электронной таблице не затрагиваются.
Настройка
1. Создайте B1 API-ключ с правильными областями
- В B1Admin перейдите в Settings → Developer → API Keys.
- Нажмите New API Key, назовите его "Sheets Export", и предоставьте области read для всего, что вы планируете экспортировать:
people:readдля экспорта людейdonations:readдля пожертвованийgroups:readдля группattendance:readдля посещаемости
- Ключ, который только экспортирует, не требует
settings:write— эта область требуется только для соединителей, которые регистрируют вебхуки (Zapier / Make). Держите этот ключ узким. - Сохраните и скопируйте ключ
cak_….
2. Установите дополнение
- Откройте электронную таблицу, в которую вы хотите экспортировать.
- Extensions → Add-ons → Get add-ons.
- Найдите B1 Export и установите его. Google просит вас предоставить доступ к вашим таблицам и к внешним HTTP (чтобы дополнение могло вызвать B1 API).
После установки запись B1 Export появляется в меню Extensions каждой электронной таблицы, которую вы открываете с этим Google аккаунтом.
3. Подключите ключ
- Extensions → B1 Export → Connect… (или B1 Export → Connect… из меню после первого открытия).
- Вставьте API-ключ в боковую панель, оставьте Base URL как
https://api.churchapps.org(если вы не тестируете против staging), и нажмите Save. - Нажмите Test Connection — зеленое "Connection OK" подтверждает, что ключ работает.
Ключ хранится в per-user properties (PropertiesService.getUserProperties()) — привязан к вашему Google аккаунту, никогда не записывается в лист и никогда не виден другим редакторам электронной таблицы.
Запуск экспорта
Либо:
- Из меню — Extensions → B1 Export → Export People (или Donations / Groups / Attendance)
- Из боковой панели — откройте боковую панель (Connect…) и нажмите соответствующую кнопку набора данных
Тост подтверждает завершение — "N row(s) written to '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:
- Extensions → Apps Script в электронной таблице (это открывает связанный скрипт дополнения).
- Нажмите значок ⏰ Triggers в левой боковой панели.
- Add Trigger для
exportPeople(или любой функции экспорта) — выберите Time-driven, Week timer, например Every Monday 6am.
Экспорт выполняется в фоне под вашим Google аккаунтом. Если API-ключ повернут или отозван, триггер отправляет вам письмо при следующем отказе.
Разрешения и конфиденциальность
- Дополнение запрашивает только
spreadsheets.currentonly(оно может только трогать электронную таблицу, в которой оно открыто) иscript.external_request(чтобыUrlFetchAppмог вызвать B1 API). Оно не видит ваш Drive, Gmail или другие данные Google. - API-ключ B1 хранится для каждого пользователя — другие редакторы той же электронной таблицы не могут его видеть.
- Все вызовы B1 API выполняются по HTTPS с
Authorization: Bearer cak_….
Устранение неполадок
- "No API key set" — откройте Extensions → B1 Export → Connect… и вставьте ключ.
- "B1 rejected the API key (401)" — ключ был отозван или неправильный. Пересоздайте и вставьте его заново.
- "This API key lacks permission for /giving/donations (403)" — ключ не имеет
donations:read. Обновите области ключа в B1Admin. - Sheet не обновляется после запуска — убедитесь, что вы смотрите на правильное имя вкладки (
B1 Peopleи т. д.). Экспорт создает вкладку, если она не существовала. - "Quota exceeded" — Apps Script налагает квоты на
UrlFetchAppдля каждого пользователя в день (обычно тысячи вызовов в день). Большая церковь с множеством записей может потребоваться разделить экспорты на несколько дней или использовать Make / пользовательскую интеграцию для высокого объема синхронизации.
Настройка дополнения
Дополнение с открытым исходным кодом — проект Apps Script находится в репозитории B1Integrations/GoogleSheetsAddon/. Если вы хотите столбец, который мы не экспортируем, дополнительный набор данных или другой формат вывода, откройте проблему или PR там.
См. также
- Zapier — для синхронизации в реальном времени вместо экспорта по требованию
- Make — для синхронизации с более сложными преобразованиями
- API Keys (справка разработчика)