Дата публикации: , 21:11:33
Содержание
- Что такое бот‑печенька?
- Зачем нужен такой бот?
- План создания
- Шаг 1. Подготовка Google‑таблицы с предсказаниями
- Шаг 2. Регистрация бота в BotFather
- Шаг 3. Выбор способа реализации (конструктор vs код)
- Шаг 4. Интеграция таблицы и получение случайной строки
- Шаг 5. Настройка триггера (команда или слово‑триггер)
- Продвинутые функции: тегание, статистика, отсутствие повторов
- Шаг 6. Тестирование и запуск
- FAQ
Что такое бот‑печенька?
Бот‑печенька – это небольшое Telegram‑приложение, которое по запросу пользователя (команда /cookie или слово‑триггер «печенька») выдаёт случайное предсказание, пожелание или шутку, как в традиционных восточных печеньках‑с‑предсказанием. Такие боты часто используют в чатах для развлечения, поднятия настроения и создания лёгкой интерактивности.
Зачем нужен такой бот?
- Развлечение – мгновенный «вкус» юмора или вдохновения.
- Вовлечение аудитории – пользователи охотнее участвуют в обсуждениях, когда есть «игровой» элемент.
- Лёгкая настройка – достаточно списка предсказаний и простого триггера.
- Гибкость – можно добавить тегание, статистику, ограничение повторов и даже интеграцию с рекламой.
Пример успешного проекта: бот‑предсказатель для Telegram из DTF, который за несколько лет вырос от 50 до более 200 предсказаний, умеет тегать пользователей и вести статистику.
План создания
- Создать Google‑таблицу со списком предсказаний.
- Зарегистрировать бота через BotFather.
- Выбрать способ реализации:
- Конструктор (например, Bot Designer for Telegram, ManyChat, Chatfuel) – без программирования.
- Код на Python/Node.js с использованием Bot API – для полной гибкости.
- Подключить таблицу к боту (интеграция).
- Настроить триггер (команда или слово‑триггер).
- Добавить дополнительные функции (тегание, статистика, «нет повторов»).
- Тестировать и запустить.
Шаг 1. Подготовка Google‑таблицы с предсказаниями
Google‑таблица – самый простой способ хранить произвольный список фраз и получать их случайным образом.
Создаём таблицу
- Откройте Google Sheets и создайте новый документ.
- В первой колонке (A) заносим предсказания. Обязательно пронумеруйте строки, начиная с 1.
Пример:
| A (Номер) | B (Текст предсказания) |
|---|---|
| 1 | Сегодня вас ждёт приятный сюрприз. |
| 2 | Не забудьте улыбнуться – это заразительно. |
| 3 | Ваша следующая встреча будет судьбоносной. |
| … | … |
Публичный доступ
Для интеграции таблицы необходимо открыть её для чтения по ссылке:
- Файл → Поделиться → «Получить ссылку» → «Все, у кого есть ссылка, могут просматривать».
Запоминаем ID листа
В URL таблицы будет часть .../d/ ИД_Таблицы /edit. Скопируйте ИД_Таблицы – он понадобится в настройках интеграции.
Шаг 2. Регистрация бота в BotFather
- Откройте чат с @BotFather.
- Отправьте команду
/newbot. - Укажите имя бота (например, CookiePredictorBot) и уникальное юзернейм (должно оканчиваться на
bot). - BotFather пришлёт токен доступа – сохраните его в надёжном месте. Токен понадобится как в конструкторе, так и в коде.
Токен выглядит так: 123456789:AAH...-example
Шаг 3. Выбор способа реализации
Конструктор (без кода)
Если вы не знакомы с программированием, используйте один из популярных конструкторов:
- Bot Designer for Telegram – поддерживает интеграцию с Google‑таблицами и переменные
[rand]1:100[/rand](см. ниже). - ManyChat – имеет блок «Google Sheets» и возможность отправлять сообщения‑кнопки.
- Chatfuel – тоже умеет работать с таблицами через API.
Плюсы: быстрый старт, визуальная схема, минимум кода.
Программирование (Python)
Для полной гибкости можно написать бота на Python с библиотекой aiogram или python-telegram-bot. Ниже – минимальный пример.
import random
import gspread
from telegram import Update, Bot
from telegram.ext import Updater, CommandHandler, CallbackContext
TOKEN = 'YOUR_BOT_TOKEN'
SHEET_ID = 'YOUR_GOOGLE_SHEET_ID'
gc = gspread.service_account(filename='service_account.json')
sh = gc.open_by_key(SHEET_ID)
worksheet = sh.sheet1
def get_random_prediction -> str:
rows = worksheet.get_all_values
# rows[0] – заголовок, поэтому берём с 1
return random.choice(rows[1:])[1] # колонка B
def cookie(update: Update, context: CallbackContext):
prediction = get_random_prediction
update.message.reply_text(f'🥠 {prediction}')
def main:
updater = Updater(TOKEN)
dp = updater.dispatcher
dp.add_handler(CommandHandler('cookie', cookie))
updater.start_polling
updater.idle
if __name__ == '__main__':
main
Для доступа к Google‑таблице нужен service account с правом чтения.
Шаг 4. Интеграция таблицы и получение случайной строки
Через конструктор
В Bot Designer добавьте блок «Действие» → «Действия с интеграцией» и настройте:
- Название интеграции – выберите созданную ранее интеграцию с Google‑таблицей.
- Действие – «Получить строчку».
- ID таблицы – вставьте ИД_Таблицы.
- Название листа – обычно Sheet1 (или ваше название).
- Значение для поиска –
[rand]1:100[/rand](если у вас 100 строк). Если строк 200 –[rand]1:200[/rand].
Переменная [rand]X:Y[/rand] генерирует случайное число в диапазоне X‑Y, которое используется как номер строки.
Через код (Python)
В примере выше функция get_random_prediction делает то же самое, но без переменной rand. Вы можете добавить проверку на отсутствие повторов, сохраняя уже выданные номера в set и обновляя его в базе (например, в Redis).
Шаг 5. Настройка триггера (команда или слово‑триггер)
Команда /cookie
Самый простой способ – добавить в конструкторе блок «Команда» и указать /cookie. При получении этой команды бот выполнит цепочку действий, описанную выше.
Слово‑триггер «печенька» в чате сообщества
Если бот работает в группе или канале, можно реагировать на обычный текст:
- Добавьте блок «Условие» → «Полученный текст полностью соответствует значению».
- В поле «Значение» впишите слово‑триггер, например печенька (регистронезависимо).
- Если нужно ограничить действие только конкретным постом, укажите ID поста в том же условии (см. источник [1]).
Пример схемы в конструкторе
- Условие: «Текст = печенька» → переход к шагу 2.
- Сообщение: «Привет! Нажми кнопку, чтобы открыть предсказание» + кнопка УЗНАТЬ ПРЕДСКАЗАНИЕ.
- Действие: «Установить статус набора текста» (имитация «бот думает»).
- Действие: «Получить строчку из Google‑таблицы» (см. пункт 4).
- Сообщение: вывод полученного предсказания.
Продвинутые функции
Тегание пользователя
В конструкторе добавьте в финальное сообщение переменную {user_first_name} или {user_id} (зависит от платформы). Пример:
«{user_first_name}, твоя печенька гласит: …»
Статистика и рейтинг предсказаний
Можно вести счётчик, сколько раз каждое предсказание было выдано. В конструкторе это делается через «Переменные» + «Сохранить в базу». В коде – храните счётчик в базе (SQLite, Redis).
Предотвращение повторов
Алгоритм «без повторов»:
- Сохраняем список уже использованных номеров в пользовательской сессии (например, в
context.user_dataв aiogram). - При выборе нового номера проверяем, не в списке ли он. Если есть – генерируем снова.
- Если список исчерпан, очищаем его.
Модерация контента
Если предсказания могут быть «едкими», добавьте проверку на запрещённые слова (черный список) перед отправкой.
Расширение: гороскопы, цитаты, шутки
Тот же механизм позволяет хранить любые типы коротких сообщений – гороскопы, мотивационные цитаты, шутки и т.д.
Шаг 6. Тестирование и запуск
- Добавьте бота в тестовый чат (личный или групповой).
- Отправьте триггер (
/cookieили «печенька») и проверьте, что предсказание появляется. - Убедитесь, что статус «печатает…» отображается (если вы его включали).
- Проверьте работу в разных языковых настройках (UTF‑8).
- Если всё работает, разместите ссылку на бота в описании группы, канала или сайта.
Для постоянной работы рекомендуется разместить код на сервере (Heroku, Render, Railway) или использовать Webhook вместо Polling. Конструкторы обычно берут на себя хостинг.
FAQ
Вопрос: Можно ли добавить более 100 предсказаний?
Да. В конструкторе просто укажите диапазон [rand]1:200[/rand], если у вас 200 строк. Главное – пронумеровать каждую строку.
Вопрос: Как получить ID поста для триггера «комментарий под постом»?
Откройте нужный пост в сообществе, скопируйте цифры после нижнего подчёркивания в URL. Это и есть ID поста (см. источник [1]).
Вопрос: Что делать, если предсказания повторяются слишком часто?
Включите механизм «без повторов», описанный в пункте 6.3, либо увеличьте объём списка.
Вопрос: Можно ли монетизировать бота?
Да. Можно добавить платные «премиум‑печеньки», рекламные сообщения между предсказаниями или продавать наборы уникальных предсказаний.
Вопрос: Как добавить кнопку «УЗНАТЬ ПРЕДСКАЗАНИЕ»?
В конструкторе используйте блок «Кнопка» и укажите действие «Вызвать команду /cookie» или «Запустить сценарий предсказания».
Бот «печенька с предсказанием» – отличный способ добавить интерактивность в любой Telegram‑сообщество. С помощью Google‑таблицы и простого триггера вы получаете гибкую систему, которую легко расширять: от простых шуток до сложных гороскопов с теганием и статистикой. Выбор между конструктором и программированием зависит от ваших навыков и потребностей, но оба пути позволяют быстро запустить работающего бота.
Удачной разработки! Если возникнут вопросы – оставляйте комментарии, а готовый бот можно протестировать, добавив его в чат и отправив слово печенька или команду /cookie.
Источники:
- [1] «Чат‑бот предсказатель» – vk.com (2022‑02‑09).
- [2] «Бот‑предсказатель для Telegram» – DTF (2022‑04‑16).
- [3] Примеры печений‑с‑предсказаниями в Telegram‑канале t.me (2023‑12‑19).