Google Apps Script | Канал
СтатистикаGoogle Apps Script для бизнеса от экспертов-практиков Публикуем скрипты, кейсы и решения для реальной автоматизации. Канал поддерживается нашим профессиональным Клубом @gasru_chat (вход по рекомендации) Разработка и партнерство: @Boorawchick, @oshliaer
- Последний пост
- 10 авг.
- Последнее чтение
- 21:44
- Постов за неделю
- 3
- Всего постов
- 21
- Тип
- открытый
- Язык
- русский
- Категория
- Бизнес
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- 259
- 1/48двое суток
- 296
- 1/72трое суток
- 320
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
видео или голосовое, без подписи
видео или голосовое, без подписи
Проблема в работе основного триггера проверки. Он уходит за лимит. Но это явно проблема Гугл, потому что среднее время выполнения нормальное, как и ожидалось в самом начале -- меньше 4 мин. 1. Общее число ошибок 14% -- это много, поэтому и заметно 2. 3/4 всех запусков выполняется в ожидаемом диапазоне времени, т.е. до таймаута далеко 3. Ошибки распределены внутри суток равномерно, т.е. не зависит от того, появилось ли в системе новое событие или нет. Коротко: проблемы у Гугл.
Сегодня 20е число. Макс все еще работает на старом URL. Очень не хочется отказываться от Google Apps Script только из-за того, что нельзя отправить запрос напрямую. Но, когда нельзя напрямую, можно на кривую. Это называется "проксирование" -- использование программы-посредника для всякого. В нашем случае для того, чобы решить проблему доверия сертификату Минцифры со стороны Google. И так нам нужен посрелник, котрому доверяет Гугл, и который в свою очередь, доверяет Минцифрам. И это ... Облако Яндекс! Не буду долго юлить, детали можно посмотреть тут https://github.com/contributor-pw/provodox-lite Затестить можно так: const BASE = 'https://d5dinh6uhntgb8lmpto8.xxg4zr82.apigw.yandexcloud.net'; const TOKEN = 'ВАШ_ТОКЕН_БОТА'; /** Было: прямой вызов MAX -- падает на TLS. */ function before() { const res = UrlFetchApp.fetch('https://platform-api2.max.ru/me', { headers: { Authorization: TOKEN }, muteHttpExceptions: true, }); Logger.log(res.getContentText()); // сюда не доходит: Exception ... SSL Error } /** Стало: тот же вызов через прокси -- работает. */ function after() { const res = UrlFetchApp.fetch(`${BASE}/me`, { headers: { Authorization: TOKEN }, muteHttpExceptions: true, }); Logger.log(res.getResponseCode()); // 200 Logger.log(res.getContentText()); // {"user_id":…,"is_bot":true,…} } По любым вопросам развертывания, авторизации, подключения соственного домена (например, я использую const BASE = 'https://provodox.contributor.pw') пишите в комментарии.
Специалист по автоматизации Google Sheets / Google Apps Script 💰 80–140 тыс. на руки 📍 Удаленно / гибрид 🕒 Фуллтайм ЭнергоТрансГрупп - оператор железнодорожного подвижного состава. Ищем человека на поддержку и развитие внутренних автоматизаций в Google Workspace. Стек: • Google Apps Script • Google Sheets • JavaScript • SQL / BigQuery • API-интеграции • HTML/CSS для простых интерфейсов • Firebase Задачи: • Разработка и поддержка автоматизаций на GAS • Работа с формулами и логикой в Google Sheets • Интеграции через API • SQL-запросы к BigQuery • Поддержка существующих проектов и разработка новых Сейчас проекты уже ведутся внутри компании — потребуется постепенно забрать часть задач на себя. Текущий разработчик остается в команде и поможет с погружением. Сбором требований и коммуникацией с пользователями занимается отдельный сотрудник. Контакты: @ilyakanavin
Шок-контент: Починили (или добавили, если смотреть на это как на feature request) висевший 15 лет issue на возможность использовать postgresql в jdbc https://issuetracker.google.com/issues/36752790
видео или голосовое, без подписи
Всем добра. Технология Apps Script переживает не лучшие свои моменты. Но есть надежда. Инструментарий широк и легко используем, если не считать, конечно, особенностей многопользовательского доступа и связанных с этим ограничений. Возможно, в новом году удастся что-то с этим сделать. С новыми требованиями к автоматизации это может стать новым толчком к развитию и эксплуатации именно Apps Script. Надеемся и верим. С наступающим новым годом 🎄
видео или голосовое, без подписи
Extension Pack для Google Apps Script для vscode https://marketplace.visualstudio.com/items?itemName=labnol.google-apps-script Пользуетесь хотя бы половиной расширений?
При работе с UrlFetchApp в Google Apps Script разработчики сталкиваются с фундаментальной проблемой: исходящие запросы отправляются с динамических IP-адресов. Это становится непреодолимым препятствием, когда внешний API требует, чтобы запросы приходили только с заранее известных IP-адресов, добавленных в “белый список”. Решением является создание прокси-сервера в Yandex.Cloud. Это руководство предлагает два проверенных сценария, а также лучшие практики для безопасного и надежного развертывания. Сценарий А: Простой и быстрый доступ. Идеален, когда целевой сервис доверяет всему диапазону IP-адресов Yandex.Cloud. Сценарий Б: Доступ по статическому IP-адресу. Незаменимый вариант, когда целевой сервис требует один неизменяемый IP в своем списке разрешенных. oshliaer.github.io/oshliaer/docs/notes/apps-script/как_настроить_прокси_для_google_apps_script.html
Кнопки, которые вы скорее всего никогда не нажимали Вступайте в Клуб Google Apps Script по ссылке https://t.me/+C656ROsaJr44Yjdi (требуется приглашение)
🔥 Не просто таблицы: превращаем выгрузки из вашей CRM в умные веб-приложения Коллеги, знакомая картина? Выгружаете данные из корпоративной CRM или ERP системы в Google Таблицу… и получаете "мертвый" файл. Просто снимок данных на текущий момент. Чтобы из него получить нужную аналитику, менеджеры и бухгалтеры часами вручную считают, фильтруют и строят сводные таблицы. Цена ошибки - упущенная выгода или штрафы. А теперь смотрите, как должно быть. Вот реальный кейс: ✅ Взяли: Обычную выгрузку данных о работе агентов из CRM клиента в одну Google Таблицу ✅ Добавили: Немного инженерной магии на Google Apps Script ✅ Получили: Полноценное веб-приложение. Оно само предоставляет данные для потребителей, которые уже сами себе как хотят рассчитывают сложную логику своих бизнес-процессов и выводят результыт на свои дашборды или отправляют дальше по своим пайплайнам. "Мертвый" отчет превратился в живой, интерактивный инструмент Почему это в десятки раз дешевле и быстрее, чем "настоящая" разработка? Потому что вся тяжелая и дорогая инфраструктура - серверы, базы данных, система авторизации - уже оплачена вами в подписке Google Workspace или даже просто бесплатно в персональном аккаунте. Мы не строим завод. Мы устанавливаем умный станок в уже построенном вами и инженерами Google цеху. 🔥 Хватит воспринимать Google Таблицы как кладбище для данных из других систем. Давайте превратим их в мозг вашего отдела, который будет работать на вас 24/7! Подробнее о решении в статье https://contributor.pw/project/project-resident-status-automation/ ➡️ Мы поможем найти скрытый потенциал в ваших рутинных отчетах. Узнайте, как превратить выгрузки в работающие инструменты, которые экономят время и деньги. Контакты в профиле: @oshliaer, @GoogleSheets_ru_cm #ROI #NoCode #Автоматизация #GoogleWorkspace #CRM #Аналитика
TODO list - the mission ✅complete
🔐 Ваш Google Drive -- проходной двор? Ставим замок на "Расшаривание" с помощью Apps Script Сообщество, привет! Наверняка всем знакома ситуация: вы даете коллеге доступ на редактирование прайс-листа или базы контактов, а через неделю этот файл "уплывает" налево и направо, потому что кто-то по доброте душевной поделился им еще с десятком человек. Контроль над важными документами теряется моментально. Причина -- та самая галочка "Разрешить редакторам изменять разрешения и делиться файлами". Хорошая новость: эту "дыру" в безопасности можно закрыть кодом! С помощью Google Apps Script вы можете программно, от имени владельца файла, запретить всем редакторам делиться им дальше. Всего пара строк кода: const fileMetadata = { writersCanShare: false, // <-- Та самая "магия" }; Drive.Files.update(fileMetadata, fileId); Таким образом, вы также можете массово обновить права для сотен файлов, гарантируя, что конфиденциальная информация останется под вашим контролем. Это особенно важно для HR-документов, финансовых отчетов и клиентских баз. ➡️ Наш практический пример, как это работает в Таблице чата, можно посмотреть на GitHub: ссылка на PR --- Это лишь один из десятков примеров, как Google Apps Script дает вам полный контроль над вашими бизнес-процессами. Хотите не просто копировать готовые решения, а понимать, как они работают, и создавать свои? Для этого у нас есть персональные консультации (поможем с вашей конкретной задачей) и обучение Google Apps Script (передадим системные знания). Обращайтесь к @oshliaer, @GoogleSheets_ru_cm. #GoogleDrive #AppsScript #Безопасность #Автоматизация #GoogleWorkspace
Так, что есть на данный момент: - вебапы начали падать где-то в 7 часов утра по Москве - не смог запустить разные вебапы с разных аккаунтов https://t.me/gasru/529 - сейчас пошли потверждения о чужих вебапах, которые не поднимаются и в диалоговых окнах - возможная ошибка в трекере https://issuetracker.google.com/issues/428521312 Так-то. Ждем
Колбэки на вебапах упали. Два аккаунта подтверждено. Не важно из какой сети ⚠️
Channel photo updated
Channel name was changed to «Google Apps Script | Канал»
Немного про сортировку листов. В какой-то момент это была довольно больная тема, и каждый раз предлагался вариант сортировки через активирования листа, т.к. в стандартной библиотеке Apps Script нет другого варианта. Большие модели тоже предлагали этот вариант, возможно, все еще предлагают: const ss = SpreadsheetApp.open(workBook); const sh = dss.getSheetByName('Current').activate(); ss.moveActiveSheet(0); Но существует более простой и элегантный способ - это запрос на изменение индекса листа через Advanced Services Sheets: const updatePropertiesRequest = Sheets.newUpdateSheetPropertiesRequest(); updatePropertiesRequest.fields = 'index'; updatePropertiesRequest.properties = { index, sheetId: sheet.properties.sheetId, }; const request = Sheets.newRequest(); request.updateSheetProperties = updatePropertiesRequest; По ссылке пример использования заранее известной сортировки для любого числа листов в книге.