Перейти к основному содержимому

Google Sheets

B1 Export — официальное дополнение Google Sheets для B1.church. Он добавляет боковую панель в любую электронную таблицу, которая экспортирует людей, пожертвования, группы или посещаемость из вашей церкви B1 в именованные вкладки — по требованию одним кликом. Дополнение работает полностью в учетной записи Google пользователя; ничего не касается серверов ChurchApps, кроме вызовов API только для чтения, которые делает каждый экспорт.

Перед началом

  • Google аккаунт с правом редактирования электронной таблицы, в которую вы хотите экспортировать
  • Администратор церкви (или кто-то с правом доступа к данным, которые вы хотите экспортировать), способный создать API-ключ B1
  • B1 Export дополнение установлено из Google Workspace Marketplace

Что он экспортирует

Пункт менюВкладка таблицыДанные
Export PeopleB1 PeopleID, Display Name, First, Last, Email, Membership Status
Export DonationsB1 DonationsID, Person ID, Date, Amount, Method, Batch ID
Export GroupsB1 GroupsID, Name, Category, Member Count
Export AttendanceB1 AttendanceID, Person ID, Visit Date, Service ID, Group ID

Каждый экспорт заменяет содержимое его именованной вкладки — повторный запуск экспорта дает свежий снимок, а не добавленные строки. Другие вкладки в электронной таблице не затрагиваются.

Настройка

1. Создайте B1 API-ключ с правильными областями

  1. В B1Admin перейдите в Settings → Developer → API Keys.
  2. Нажмите New API Key, назовите его "Sheets Export", и предоставьте области read для всего, что вы планируете экспортировать:
    • people:read для экспорта людей
    • donations:read для пожертвований
    • groups:read для групп
    • attendance:read для посещаемости
  3. Ключ, который только экспортирует, не требует settings:write — эта область требуется только для соединителей, которые регистрируют вебхуки (Zapier / Make). Держите этот ключ узким.
  4. Сохраните и скопируйте ключ cak_….

2. Установите дополнение

  1. Откройте электронную таблицу, в которую вы хотите экспортировать.
  2. Extensions → Add-ons → Get add-ons.
  3. Найдите B1 Export и установите его. Google просит вас предоставить доступ к вашим таблицам и к внешним HTTP (чтобы дополнение могло вызвать B1 API).

После установки запись B1 Export появляется в меню Extensions каждой электронной таблицы, которую вы открываете с этим Google аккаунтом.

3. Подключите ключ

  1. Extensions → B1 Export → Connect… (или B1 Export → Connect… из меню после первого открытия).
  2. Вставьте API-ключ в боковую панель, оставьте Base URL как https://api.churchapps.org (если вы не тестируете против staging), и нажмите Save.
  3. Нажмите 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:

  1. Extensions → Apps Script в электронной таблице (это открывает связанный скрипт дополнения).
  2. Нажмите значок ⏰ Triggers в левой боковой панели.
  3. 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 там.

См. также