Можно ли как-то снифер воскресить, хотя бы старый?
Через содержание ответа и консоль не всегда удобно смотреть (в консоле статус, в содержании ответа ответ)
GoogleSpreadsheets - модуль для работы с таблицами гугла
-
♦️ Название: Google Spreadsheets
♦️ Версия: 1.1.
♦️ Модуль: GoogleSpreadsheets.zip
♦️ Исходник: на библиотеке https://www.npmjs.com/package/google-spreadsheet
♦️ Согласие на добавление модуля в BAS: да
♦️ Описание: Модуль для взаимодействия с таблицами гугла
♦️ Возможности (v1.1):- Подключение к таблице по ID таблицы и JSON файлу авторизации
- Быстрый поиск по таблице, с получением содержимого строк, в которых содержится указанный текст. Без возможности получить номер строки, но зато ищет по сути мгновенно даже если строк очень много, подходит для быстрой оценки, содержится строка или нет.
- Получить строки по номерам, с возможными шаблонами типа: 1,4-5,10-5,55+ .
- Найти номера строк по критериям. Этот метод уже работает перебором - получили 1000 строк, проверили. Но зато позволяет получить номера строк, которые содержат нужный текст, или наоборот - пустые.
- Редактировать ячейки, в виде json массива указываем в каких ячейках - какое содержимое установить.
- Добавление строк с проверкой или без. Т.е. перед добавлением можно проверить, есть ли такие строки, и если нет - то добавить.
( действия своеобразные, под мой проект, потому если кому то не хватит - пишите, постараюсь сделать )


Если что особо не критикуйте, понадобился такой модуль, начал искать, не нашел, пришлось самому учится их делать. Выложил что получилось, в любом случае для себя буду делать дальше, если кому интересно развитие такого модуля - пишите что добавить, постараюсь сделать.
-
круто! очень не хватает в BAS подобного модуля. Я давно пользуюсь в BAS взаимодействием с Google таблицами.
Но если Вы планируете развивать модуль, то тут может возникнуть проблема что сложно будет записывать данные в таблицу Из-за выдачи прав на запись. Хотя возможно я ошибаюсь и есть какой-то обходной вариант ....для этого конечно лучше подходит google app script -
@Shogo very important module!!!thank you!!! (I didn't try it yet but experienced the need sharply)
what is ideally needed is same actions that exist in excel module
Most of the business owners use google sheets now days not exell and it is pain on the neck to edit it in BAS cell by cell.
could you elaborate on the authorization throw json file ,please? at least where to look for info
There is what to take in to consideration that if connection uses googleAPI for google sheet than there is some limit of usage. -
@Shogo Кстати максимальное количество символов в одной ячейке Google таблицы - 50000 символов. Поэтому, если модуль попробует записать одну ячейку более чем 50к симв, то google ему это не даст сделать. Было бы неплохо это как-то учесть в модуле
-
@Shogo В любом случае записать в одну ячейку более 50к символов через API нельзя — Google отклонит запрос. Думаю лучше это- модуль до отправки проверяет длину данных и, если >50 000, сразу возвращает ошибку или уведомление. Я ещё не тестировал ваш модуль но подозреваю что там при записи в ячейку выполняется полная перезапись ячейки, а не «дописыванием». поэтому если бы модуль выполнял дописывание то пришлось бы сначала читать текущее значение (например, 48 900 + 200 > 50 000), что делает лишние вызовы и расходует квоту.
-
@Shogo Если вы имеете в виду квоту ну как я сказал 50000 символов в одной ячейке может максимум храниться. Неважно как их пытаться записать руками, либо через апи , или либо через Google app script.
Можете сами попробовать записать в любую ячейку более 50000 символов это не получится сделать. Если если вы про другую какую-то квоту, то поясните какая имеется в виду квота.
-
@Shogo Кста, при работе с Google таблицами даже если ты всё верно по апи запрос отправил , то отвечает не-200 (и такое часто бывает я проверял так как работаю с Google таблицами давно по api)..типа пиковая нагрузка, параллельные запросы к одному документу, лимиты.
В модуль можно встроить простой метод повтора с Рандомные заранее заданный задержкой в модулеВот как можно типа параметры прям в модуле (типа поля сделать): maxRetries (например 3–5), baseDelayMs ( например 500–1000 ms ), maxDelayMs (например до 60000)
Типа повторяем только при ответах: 429, 500, 502, 503, 504, 408, 409.
понятно что обрабатывать ошибки можно отдельными кубиками которые есть в BAS, Ну я думаю что так будет удобнее.
Не повторяем при ответах 400, 401/403, 404
чат gpt говорит что такие лимиты есть:
Квоты Google Sheets API на бесплатном аккаунте (по официальной доке): Лимиты считаются в минуту и пополняются каждую минуту. • Чтение: до 300 запросов в минуту на проект и до 60 в минуту на пользователя. • Запись: те же 300/60. Google for Developers Рекомендуют держать полезную нагрузку запроса до ~2 МБ, иначе начнутся внутренние ограничения обработчиков. Google for Developers Один запрос, который обрабатывается дольше 180 секунд, вернёт таймаут. Google for Developers Суточного лимита нет, если укладываетесь в поминутные квоты. При превышении вернётся 429 -
@Shogo было бы неплохо сделать автоматические повторы в случае например когда Google ругается на то что квота истекла , Особенно эту актуально когда несколько юзеров (экземпляры приватного скрипта) которым ты допустим раздал свой скрипт - долбят Google таблицу используя одни и те же данные авторизации ( json данные авторизации с одного Google аккаунта).
Кстати мне кажется лучше идея не путь к json-файлу, а просто копипастить содержимое json-файла , или чтоб у пользователя модуля был выбор, либо указать путь до файла, или вставить json строку (Содержимое этого файла)