Google Apps Script | Канал
1.53K subscribers
148 photos
11 videos
353 links
Google Apps Script для бизнеса от экспертов-практиков

Публикуем скрипты, кейсы и решения для реальной автоматизации. Канал поддерживается нашим профессиональным Клубом @gasru_chat (вход по рекомендации)

Разработка и партнерство: @Boorawchick, @oshliaer
Download Telegram
Проблема Apps Script - файл в 83Mb
🔥42👍2
Вернул Таблицу чата в чат после вредительских атак на Google Таблицы

Обновил Мастер-скрипт
☝️ это полностью боевой проект. Подходит для понимания что и как происходит
🔥62👍2
Немного про сортировку листов. В какой-то момент это была довольно больная тема, и каждый раз предлагался вариант сортировки через активирования листа, т.к. в стандартной библиотеке 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;


По ссылке пример использования заранее известной сортировки для любого числа листов в книге.
👍63🔥3
Channel name was changed to «Google Apps Script | Канал»
Channel photo updated
Колбэки на вебапах упали. Два аккаунта подтверждено. Не важно из какой сети ⚠️
🔥42👍2👎2
Так, что есть на данный момент:
- вебапы начали падать где-то в 7 часов утра по Москве
- не смог запустить разные вебапы с разных аккаунтов https://t.me/gasru/529
- сейчас пошли потверждения о чужих вебапах, которые не поднимаются и в диалоговых окнах
- возможная ошибка в трекере https://issuetracker.google.com/issues/428521312

Так-то. Ждем
3👍3🔥2👎1
🔐 Ваш 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
🔥10👍73
TODO list
- the mission complete
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👏2
🔥 Не просто таблицы: превращаем выгрузки из вашей 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 #Аналитика
🔥73👏2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Кнопки, которые вы скорее всего никогда не нажимали

Вступайте в Клуб Google Apps Script по ссылке https://t.me/+C656ROsaJr44Yjdi (требуется приглашение)
🔥74👍3👏2
При работе с 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
5👍1
Extension Pack для Google Apps Script для vscode https://marketplace.visualstudio.com/items?itemName=labnol.google-apps-script

Пользуетесь хотя бы половиной расширений?
👍7🔥21👏1
🔥4👍32👎1
Всем добра.

Технология Apps Script переживает не лучшие свои моменты.

Но есть надежда. Инструментарий широк и легко используем, если не считать, конечно, особенностей многопользовательского доступа и связанных с этим ограничений. Возможно, в новом году удастся что-то с этим сделать. С новыми требованиями к автоматизации это может стать новым толчком к развитию и эксплуатации именно Apps Script.

Надеемся и верим.

С наступающим новым годом 🎄
3🔥2👍1
Forwarded from Yureckey
Шок-контент:
Починили (или добавили, если смотреть на это как на feature request) висевший 15 лет issue на возможность использовать postgresql в jdbc
https://issuetracker.google.com/issues/36752790
🔥4👍32
Специалист по автоматизации 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
🔥54👎3👍1
Forwarded from CONTRIBUTOR.PW (Alexander Ivanov)
Сегодня 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') пишите в комментарии.
🔥3👎2👍1