Бот‑печенька как создать Telegram‑бот с предсказаниями

Дата публикации: , 21:11:33


Содержание

  1. Что такое бот‑печенька?
  2. Зачем нужен такой бот?
  3. План создания
  4. Шаг 1. Подготовка Google‑таблицы с предсказаниями
  5. Шаг 2. Регистрация бота в BotFather
  6. Шаг 3. Выбор способа реализации (конструктор vs код)
  7. Шаг 4. Интеграция таблицы и получение случайной строки
  8. Шаг 5. Настройка триггера (команда или слово‑триггер)
  9. Продвинутые функции: тегание, статистика, отсутствие повторов
  10. Шаг 6. Тестирование и запуск
  11. FAQ

Что такое бот‑печенька?

Бот‑печенька – это небольшое Telegram‑приложение, которое по запросу пользователя (команда /cookie или слово‑триггер «печенька») выдаёт случайное предсказание, пожелание или шутку, как в традиционных восточных печеньках‑с‑предсказанием. Такие боты часто используют в чатах для развлечения, поднятия настроения и создания лёгкой интерактивности.

Зачем нужен такой бот?

  • Развлечение – мгновенный «вкус» юмора или вдохновения.
  • Вовлечение аудитории – пользователи охотнее участвуют в обсуждениях, когда есть «игровой» элемент.
  • Лёгкая настройка – достаточно списка предсказаний и простого триггера.
  • Гибкость – можно добавить тегание, статистику, ограничение повторов и даже интеграцию с рекламой.

Пример успешного проекта: бот‑предсказатель для Telegram из DTF, который за несколько лет вырос от 50 до более 200 предсказаний, умеет тегать пользователей и вести статистику.


План создания

  1. Создать Google‑таблицу со списком предсказаний.
  2. Зарегистрировать бота через BotFather.
  3. Выбрать способ реализации:
    • Конструктор (например, Bot Designer for Telegram, ManyChat, Chatfuel) – без программирования.
    • Код на Python/Node.js с использованием Bot API – для полной гибкости.
  4. Подключить таблицу к боту (интеграция).
  5. Настроить триггер (команда или слово‑триггер).
  6. Добавить дополнительные функции (тегание, статистика, «нет повторов»).
  7. Тестировать и запустить.

Шаг 1. Подготовка Google‑таблицы с предсказаниями

Google‑таблица – самый простой способ хранить произвольный список фраз и получать их случайным образом.

Создаём таблицу

  1. Откройте Google Sheets и создайте новый документ.
  2. В первой колонке (A) заносим предсказания. Обязательно пронумеруйте строки, начиная с 1.

Пример:

A (Номер) B (Текст предсказания)
1 Сегодня вас ждёт приятный сюрприз.
2 Не забудьте улыбнуться – это заразительно.
3 Ваша следующая встреча будет судьбоносной.
… …

Публичный доступ

Для интеграции таблицы необходимо открыть её для чтения по ссылке:

  • Файл → Поделиться → «Получить ссылку» → «Все, у кого есть ссылка, могут просматривать».

Запоминаем ID листа

В URL таблицы будет часть .../d/ ИД_Таблицы /edit. Скопируйте ИД_Таблицы – он понадобится в настройках интеграции.


Шаг 2. Регистрация бота в BotFather

  1. Откройте чат с @BotFather.
  2. Отправьте команду /newbot.
  3. Укажите имя бота (например, CookiePredictorBot) и уникальное юзернейм (должно оканчиваться на bot).
  4. 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. При получении этой команды бот выполнит цепочку действий, описанную выше.

Слово‑триггер «печенька» в чате сообщества

Если бот работает в группе или канале, можно реагировать на обычный текст:

  1. Добавьте блок «Условие» → «Полученный текст полностью соответствует значению».
  2. В поле «Значение» впишите слово‑триггер, например печенька (регистронезависимо).
  3. Если нужно ограничить действие только конкретным постом, укажите ID поста в том же условии (см. источник [1]).

Пример схемы в конструкторе

  1. Условие: «Текст = печенька» → переход к шагу 2.
  2. Сообщение: «Привет! Нажми кнопку, чтобы открыть предсказание» + кнопка УЗНАТЬ ПРЕДСКАЗАНИЕ.
  3. Действие: «Установить статус набора текста» (имитация «бот думает»).
  4. Действие: «Получить строчку из Google‑таблицы» (см. пункт 4).
  5. Сообщение: вывод полученного предсказания.

Продвинутые функции

Тегание пользователя

В конструкторе добавьте в финальное сообщение переменную {user_first_name} или {user_id} (зависит от платформы). Пример:

«{user_first_name}, твоя печенька гласит: …»

Статистика и рейтинг предсказаний

Можно вести счётчик, сколько раз каждое предсказание было выдано. В конструкторе это делается через «Переменные» + «Сохранить в базу». В коде – храните счётчик в базе (SQLite, Redis).

Предотвращение повторов

Алгоритм «без повторов»:

  • Сохраняем список уже использованных номеров в пользовательской сессии (например, в context.user_data в aiogram).
  • При выборе нового номера проверяем, не в списке ли он. Если есть – генерируем снова.
  • Если список исчерпан, очищаем его.

Модерация контента

Если предсказания могут быть «едкими», добавьте проверку на запрещённые слова (черный список) перед отправкой.

Расширение: гороскопы, цитаты, шутки

Тот же механизм позволяет хранить любые типы коротких сообщений – гороскопы, мотивационные цитаты, шутки и т.д.


Шаг 6. Тестирование и запуск

  1. Добавьте бота в тестовый чат (личный или групповой).
  2. Отправьте триггер (/cookie или «печенька») и проверьте, что предсказание появляется.
  3. Убедитесь, что статус «печатает…» отображается (если вы его включали).
  4. Проверьте работу в разных языковых настройках (UTF‑8).
  5. Если всё работает, разместите ссылку на бота в описании группы, канала или сайта.

Для постоянной работы рекомендуется разместить код на сервере (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).