ІНСТРУКЦІЯ · 9 КРОКІВ · ≈ 40 ХВ
Повторіть бота самостійно
Telegram-бот, який знає ваш курс (базу знань із Google Таблиці), пояснює код і показує розклад, — на Google Apps Script і Gemini. Без серверів, без встановлення програм і без бюджету. Кожен крок закінчується рядком «Має вийти» — так ви знатимете, що все гаразд.
- Особистий акаунт Gmail. Шкільні й коледжні акаунти Google Workspace часто мають заблоковані Apps Script або AI Studio — це найчастіша причина, чому «не працює».
- Telegram на телефоні або комп’ютері.
- ≈ 40 хвилин і браузер. Нічого встановлювати не треба.
- 0 ₴. Безкоштовних лімітів Gemini достатньо для навчального бота.
Спершу — безпека даних
- ПІБ учнів і колег
- оцінки, характеристики, рейтинги з прізвищами
- телефони, адреси, email
- фото дітей, медичні дані
- токени, ключі, паролі — у чат чи в код
- код і помилки без особистих даних
- тема заняття, ідеї вправ
- знеособлені приклади: «учень А», «група 1»
- розклад групи без прізвищ студентів
- ключі — лише у Властивостях скрипта
Бот із цієї інструкції сам відмовляє, якщо бачить у повідомленні телефон, email чи оцінки з прізвищем, і веде лише анонімний журнал. Перевіряйте правила свого закладу щодо Telegram на службових пристроях.
Створіть бота в @BotFather
≈ 5 хвВідкрийте в Telegram офіційний бот @BotFather (з синьою галочкою) і створіть свого:
повідомлення від BotFather з токеном виду 123456789:AAE….
/revoke і отримайте новий.Отримайте ключ Gemini API
≈ 3 хв- Відкрийте aistudio.google.com/apikey під особистим Gmail.
- Натисніть Створити ключ APICreate API key і скопіюйте ключ.
рядок із приблизно 39 символів, що починається на AIza.
Створіть проєкт Apps Script
≈ 3 хв- Відкрийте script.google.com → Новий проєктNew project.
- Клацніть на назву «Проєкт без назви» вгорі й назвіть, наприклад, ШІ-асистент.
- Видаліть усе з файлу
Code.gsі вставте код із сторінки «Код» (кнопка «Копіювати»). - Збережіть: Ctrl+S (на Mac — ⌘+S).
файл Code.gs збережено без червоних повідомлень про помилки.
Додайте секрети у Властивості скрипта
≈ 3 хвКлючі зберігаємо поза кодом: так код можна показати студентам або викласти на GitHub, і ніхто не отримає доступ до вашого бота.
- Ліворуч — ⚙ Налаштування проєктуProject Settings.
- Унизу — Властивості скриптаScript Properties → Додати властивість скриптаAdd script property.
- Додайте дві властивості й натисніть ЗберегтиSave:
| Властивість | Значення |
|---|---|
| TELEGRAM_TOKEN | токен із кроку 1 |
| GEMINI_API_KEY | ключ із кроку 2 |
function prop_(name) {
return PropertiesService
.getScriptProperties() // сховище проєкту, не код
.getProperty(name);
}у налаштуваннях дві властивості: TELEGRAM_TOKEN і GEMINI_API_KEY.
Перший запуск: setup()
≈ 5 хв- Поверніться до редактора
<>. У списку функцій угорі оберіть setup і натисніть ▷ ВиконатиRun. - З’явиться вікно Потрібен дозвілAuthorization required → Переглянути дозволиReview permissions → оберіть свій акаунт.
- Google покаже «Google не перевірив цей додаток» (Google hasn’t verified this app). Це нормально: це ваш власний скрипт. Натисніть ДодатковоAdvanced → Перейти до «ШІ-асистент» (небезпечно)Go to … (unsafe) → ДозволитиAllow.
у журналі виконання внизу — рядок setup() done.
Розгорніть як вебдодаток
≈ 5 хв- РозгорнутиDeploy → Нове розгортанняNew deployment.
- Біля «Виберіть тип» натисніть ⚙ → ВебдодатокWeb app.
- Виконувати як: ЯExecute as: Me; Хто має доступ: УсіWho has access: Anyone → РозгорнутиDeploy.
- Скопіюйте URL вебдодатка (закінчується на
/exec) і додайте його у Властивості скрипта як WEB_APP_URL.
якщо відкрити URL у браузері, з’явиться текст ШІ-асистент викладача працює ✔.
Під’єднайте Telegram: setWebhook()
≈ 2 хв- Оберіть функцію setWebhook → ▷ ВиконатиRun.
- Напишіть своєму боту
/start, потім надішліть будь-який шматок коду.
у журналі — Webhook set ✔, а бот відповідає на /start.
Змініть характер бота
≈ 5 хвЩоб пристосувати бота під свій предмет, достатньо змінити один фрагмент — системний промпт SYSTEM_PROMPT на початку файлу.
const SYSTEM_PROMPT = [
'Ти — доброзичливий асистент викладача інформатики…',
// спробуйте, наприклад:
// 'Ти — асистент викладача історії. Пояснюй події через',
// 'причини й наслідки і став одне запитання для самоперевірки.',
].join(' ');Після змін: РозгорнутиDeploy → Керувати розгортаннямиManage deployments → ✎ → Версія: Нова версіяVersion: New version → РозгорнутиDeploy. Адреса вебдодатка лишиться тією самою.
бот відповідає в новому стилі.
Наповніть базу знань свого курсу
≈ 10 хвБот відповідає про ваш курс за Таблицею «ШІ-асистент — база знань і розклад», яку створив setup() на вашому Google Диску. Код і розгортання більше не чіпаєте — лише Таблицю.
- Відкрийте Таблицю: посилання є в журналі виконання setup() або знайдіть її на Google Диску.
- Аркуш База знань: один рядок — одна тема. Ліворуч Тема, праворуч Інформація: дедлайни, оцінювання, перездачі, матеріали, відповіді на часті питання.
- Аркуш Розклад: ваш розклад — бот покаже його за командою
/rozklad. - Зміни бот підхоплює сам приблизно за 5 хвилин.
| Тема | Інформація |
|---|---|
| Лабораторні й дедлайни | ЛР1 Змінні — до 15 вересня; ЛР2 Умови — до 29 вересня; ЛР3 Цикли — до 13 жовтня… |
| Оцінювання | Лабораторні — по 10 балів, дві модульні — по 15, іспит — 20. Запізнення — мінус 2 бали за тиждень. |
| ШІ на навчанні | Можна для пояснень і пошуку помилок. Код пишете самі й пояснюєте на захисті. |
на питання «Коли дедлайн ЛР3?» бот відповідає за вашою Таблицею, а після зміни рядка — через кілька хвилин уже по-новому.
Якщо щось не так
Першим ділом запустіть функцію getWebhookInfo: у полі last_error_message Telegram пише, що саме пішло не так.
| Симптом | Причина | Що зробити |
|---|---|---|
| Бот мовчить | вебхук не встановлено або змінився URL | перевірте WEB_APP_URL, ще раз setWebhook |
401 Unauthorized | неправильний токен Telegram | скопіюйте токен із @BotFather у TELEGRAM_TOKEN без пробілів |
| «Не вдалося отримати відповідь від ШІ (код 400/403)» | неправильний ключ Gemini або AI Studio заблоковано | новий ключ в AI Studio; лише особистий Gmail |
| «…дуже багато людей одночасно» (429) | вичерпано безкоштовний ліміт | зачекайте хвилину; або властивість GEMINI_MODEL = gemini-3.5-flash-lite |
| У браузері сторінка входу замість «…працює ✔» | доступ не «Усі» | крок 6: «Хто має доступ: Усі» |
| Зміни в коді не діють | працює стара версія | крок 8: «Керувати розгортаннями → Нова версія» |
| «Script property … is not set» | немає властивості | крок 4; назва — великими літерами, без пробілів |
| Не відкривається script.google.com чи AI Studio | обмеження шкільного акаунта | увійдіть з особистого Gmail |
| Бот «не знає» про ваш курс | аркуш перейменовано або зміни щойно внесено | назва аркуша — саме База знань; зачекайте 5 хвилин |
| Бот відповідає двічі | кілька старих розгортань із вебхуками | deleteWebhook, потім setWebhook |
Шпаргалка
TELEGRAM_TOKEN,GEMINI_API_KEY— виWEB_APP_URL— після кроку 6DATA_SHEET_ID— ваша Таблиця бази знань і розкладуGEMINI_MODEL— необов’язково- решту створює setup()
- setup — перший запуск
- setWebhook / deleteWebhook
- getWebhookInfo — діагностика
- testGemini — перевірити ключ і базу знань
Питання — у коментарях каналу майстер-класу. Інструкцію доповнюємо за вашими питаннями.
КаналВідгук за 1 хвУсі вебінари