Telegraft

Интеграция

Google Drive и файлы, которые принадлежат не тому, кому надо

Интеграция с Google Drive раскладывает документы, собранные через Telegram-бота, по той структуре папок, которой ваша команда уже пользуется. Ловушка здесь одна — владение: файлы, созданные сервисным аккаунтом в «Моём диске», принадлежат этому сервисному аккаунту, расходуют его квоту и не видны больше никому.

Google Drive — интеграция: доступ, лимиты и доступность

Модель авторизации
OAuth 2.0
Ловушка владения
Файлы сервисного аккаунта в «Моём диске» расходуют его собственную квоту
Доступность в Заливе
Общим дискам нужен Workspace; личные аккаунты упираются в ограничения владения
Поток данных
5 узлов, через воркер

As of 2025-10-01, Telegram Bot API 13.4

Зачем нужна эта интеграция

Сбор документов через бота окупается только тогда, когда файлы оказываются там, куда сотрудники и так смотрят. Безупречно разложенный архив в системе, которую никто не открывает, — это просто более медленный способ попросить прислать всё почтой. Поэтому интеграцию оценивают по одному признаку: лежит ли в папке дела, которую помощник юриста открывает в понедельник, то, что клиент прислал в пятницу.

Сбой, который повторяется из проекта в проект, — это владение, и он специфичен именно для того, как устроен Drive. Сервисный аккаунт, загружающий файлы в «Мой диск», становится их владельцем. У него собственная небольшая квота хранилища, поэтому загрузки начинают падать, как только она заполнится, а сами файлы не видны вашим сотрудникам, пока каждый из них не будет расшарен отдельно. На тестах с десятком документов всё выглядит рабочим, а деградирует потом так, что со стороны похоже на аварию сервиса.

Правильный ответ — общие диски, где содержимым владеет сам диск, а не тот, кто загрузил файл. Сервисный аккаунт добавляется в участники, файлы наследуют права диска, а занятое место считается организации, а не служебному роботу. Разница в настройке занимает пять минут, и это разница между интеграцией, которая работает год, и интеграцией, которая перестаёт работать на втором месяце.

Как на самом деле движутся данные

Клиент в чатеTelegramфайл и делоВоркер ботадолговечная копияCloudflare R2возобновляемая загрузкаGoogle Driveпапка делаСотрудникоткрывает
Долговечная копия записывается до загрузки в Drive, поэтому ошибка квоты или недоступность сервиса откладывают подшивку, а не теряют документ клиента.

Сервисный аккаунт, добавленный участником нужного общего диска, с ключом, который хранится как секрет воркера. Делегирование в пределах домена доступно там, где файлы обязаны создаваться от имени конкретного сотрудника, но для сбора документов схема с общим диском проще и не требует выдавать себя за кого-то из людей.

Модель доступа: OAuth 2.0

Их лимиты и что они означают для вас

Файлы, созданные сервисным аккаунтом в «Моём диске», принадлежат ему и расходуют его собственную квоту.

Вместо этого используются общие диски, где содержимым владеет диск. Иначе загрузки перестают проходить, как только сервисный аккаунт заполнится, и всё это время никто не видит файлов.

Drive API применяет квоты на проект и на пользователя, измеряемые в окне 100 секунд.

Пачка документов, пришедшая одновременно, легко выбирает короткое окно. Загрузки ставятся в очередь и повторяются с нарастающей паузой, а не отправляются по мере поступления файлов.

Загрузки крупнее примерно 5 МБ должны идти по возобновляемому протоколу.

Многостраничный скан PDF регулярно переваливает за этот порог. Простая загрузка рвётся на нестабильном соединении там, где возобновляемая спокойно продолжается с места обрыва.

Имена папок не уникальны, а файлы адресуются по идентификатору.

Идентификаторы папок вычисляются один раз и сохраняются. Искать папку по имени при каждой загрузке и медленнее, и неверно в тот момент, когда два дела названы похоже.

Как это ломается и что происходит потом

Через несколько недель после запуска загрузки начинают падать с ошибкой хранилища.

Собственная квота сервисного аккаунта заполнилась, потому что файлы шли в «Мой диск». Схема с общим диском убирает этот сценарий целиком, а не поднимает потолок.

Сотрудники не видят файлов, про которые бот отчитался, что подшил их.

Та же проблема владения, только с другой стороны. Файлы на общем диске наследуют его права и видны без отдельного шага расшаривания каждого документа.

Сотрудник переименовал или перенёс папку.

Сохранённые идентификаторы папок переживают и то, и другое — это главный аргумент за адресацию по идентификатору, а не по пути. Интеграция на путях ломается в первый же раз, когда кто-то наводит порядок.

Крупная загрузка обрывается на плохом соединении.

Возобновляемая загрузка продолжается, а не начинается заново. Вместе с долговечной копией в R2 сорванная передача стоит времени, а не документа.

Доступность в ОАЭ и остальных странах Залива

Клиенты Google Workspace

Тот случай, под который всё и рассчитано. Общие диски требуют Workspace, и именно они делают эту интеграцию долговечной.

Личные аккаунты Google

Общих дисков нет, поэтому проблем с владением и квотой не избежать. Приемлемо для практикующего в одиночку и хрупко для компании.

Размещение данных

Файлы лежат в инфраструктуре Google. Там, где регулятор требует хранить документы клиентов внутри страны, это решение для юриста, а не для того, кто выбирает хранилище.

Сроки хранения

Политика хранения настраивается в Workspace, а не ботом. Бот подшивает документы; правила удаления остаются за вашими администраторами.

Когда эту интеграцию делать не нужно

  • У вас нет Workspace и нельзя использовать общие диски. Тогда у проблем с владением и квотой нет чистого решения.
  • Документы клиентов обязаны оставаться внутри страны. Это вопрос к юристу, а не настройка интеграции.
  • Структуру папок никто не согласовал. Бот будет аккуратно и последовательно раскладывать файлы по структуре, которой никто не пользуется.
  • Вам нужно управление документами, а не хранение. Drive хранит файлы; ведением дел с версиями он не занимается.

На чём это работает

КомпонентВерсияЗачем
Cloudflare WorkerscurrentАвторизация сервисного аккаунта, очередь возобновляемых загрузок и разбор идентификаторов папок.
Cloudflare R2currentДолговечная копия, которая пишется до попытки загрузки в Drive.
Cloudflare D1currentКэш идентификаторов папок, очередь загрузок и состояние подшивки по каждому делу.
Zod4.4Валидация ответов API и результатов загрузки.

Вопросы, которые возникают при оценке

Почему загрузки начинают падать через пару недель?

Почти всегда потому, что файлы уходят в «Мой диск», где ими владеет сервисный аккаунт и где они расходуют его небольшую собственную квоту. Общие диски убирают этот сценарий целиком, а не поднимают потолок, и это разница в настройке, а не в коде.

Почему сотрудники не видят подшитые ботом файлы?

Та же проблема владения с другой стороны. Файлы, созданные сервисным аккаунтом в «Моём диске», видны только ему, пока каждый не расшарен явно; на общем диске они автоматически наследуют права самого диска.

Искать папки по имени или по идентификатору?

По идентификатору, вычисленному один раз и сохранённому. Имена папок не уникальны, а сотрудники переименовывают и переносят их, поэтому интеграция на путях ломается в первый же раз, когда кто-то наводит порядок, — а событие это совсем не редкое.

Что будет, если большой скан не загрузится?

Возобновляемая загрузка продолжится, а не начнётся заново, и долговечная копия к этому моменту уже записана до попытки отправки в Drive. Сорванная передача стоит времени, а не документа клиента.

Управляет ли бот сроками хранения?

Нет. Политика хранения настраивается в Workspace вашими администраторами. Бот подшивает документы и фиксирует, куда они легли; правила удаления он сознательно не решает.

Можно ли потом подключить к этому ИИ-ассистента?

Да, и это обычное продолжение — тот же общий диск становится корпусом. Возможным это делает именно аккуратная подшивка с самого начала: иначе всё упирается в отдельный проект по разбору накопившегося.

Что почитать дальше