Как сделать чтобы бот в Телеграмме отвечал на сообщения в группе

Во второй части серии статей по написанию телеграм бота на python, мы добавим функциональность. Бот будет приветствовать новых юзеров, предлагать выбрать и сохранять лиги. Добавим возможность получить результаты по выбранным лигам.

«Рыба» кода бота

Сразу запишем функции в «bot.py», которые понадобятся. Предварительно удалите test_message :

Это не окончательная версия, я мог что-то упустить. В процессе добавим недостающие.

Каждая функция обернута декоратором, так мы общаемся с Телегармом:

Итак. Пользователь нажимает команду старт, получает приветственное сообщение. В нем мы предлагаем выбрать 3 лиги и мониторить результаты по ним. Получить результаты можно командой или кнопкой меню. Так же мы даем возможность изменить выбранные соревнования или удалить свои данные из бота.

Добавление команд в бота

Изначально команды не настроены. Пользователи могут вводить их, но специально меню нет. Для добавления нужно снова написать https://t.me/botfather команду /setcommands . Выберите своего бота и добавьте этот текст:

7 простых правил для управления группой в Telgram | Правило №1 — установите бота модератора в чат


start — Запуск и перезапуск бота
help — Возможности бота
online — Результаты матчей

В ответ получите «Success! Command list updated. /help». Теперь можно перейти в своего бота и проверить:

 Добавление команд в бота

Ответы на команды

Взаимодействие с ботом начинается с команды /start . Нужно поприветствовать и предложить следующий шаг. Эта команда будет возвращать текст с клавиатурой. Точно так же работает и /help .

Добавим обработку этих команд в «bot.py», обновите start_handler help_handler :

Я добавил импорт import app.service as s . В этом модуле клавиатура и функция проверки пользователя. start_handler проверяет есть ли пользователь в кеше или базе данных, и отправляет ему соответствующий текст.

Еще по теме:  Как можно ответить через часы x8 в Телеграм или Ватсап

Перед отправкой текста для выбора лиг, я сохранил его будущий id. Получил номер последнего сообщения (это сама команда «start») и добавил 2 пункта: +1 за наш ответ на команду и +1 за само сообщения выбора лиг. Зная id сообщения, его можно редактирвать.

Теперь напишем клавиатуру и get_league_ids в модуль «service».

# fonlinebot/app/service.py from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton from emoji import emojize from config import BOT_LEAGUES, BOT_LEAGUE_FLAGS from database import cache, database as db from app.dialogs import msg MAIN_KB = ReplyKeyboardMarkup( resize_keyboard=True, one_time_keyboard=True ).row( KeyboardButton(msg.btn_online), KeyboardButton(msg.btn_config) ) async def get_league_ids(user_id: str) -> list: «»»Функция получает id лиг пользователя в базе данных»»» leagues = cache.lrange(f»u», 0, -1) if leagues is None: leagues = await db.select_users(user_id) if leagues is not None: leagues = leagues.split(‘,’) [cache.lpush(f»u», lg_id) for lg_id in leagues] else: return [] return leagues

Ответы на команды

Livegrambot — все сообщения в одной группе/чате + рассылка. Telegram BOT/Телеграм бот.

MAIN_KB — основная клавиатура, как на скриншоте выше. Разберем подробнее:

  • ReplyKeyboardMarkup — объект, который создает клавиатуру.
  • Параметр resize_keyboard=True уменьшает ее размер.
  • А с one_time_keyboard=True клавиатура будет скрываться, после использования.
  • .row — метод для группировки кнопок в строку.
  • KeyboardButton(msg.btn_online) и KeyboardButton(msg.btn_config) — кнопки с заданным текстом.

Осталось только добавить текста сообщений в dialogs. Вставьте этот код в класс Messages .

# fonlinebot/app/dialogs.py # . start_new_user: str = «Привет. Я могу сообщать тебе результаты матчей online.» start_current_user: str = «Привет. С возвращением! » «Используй команды или меню внизу для продолжения.» help: str = «»» Этот бот получает результаты матчей за последние 48 часов. Включая режим LIVE. — Что бы выбрать/изменить лиги нажмите «Настройки». — Для проверки результатов нажмите «Онлайн».

Бот создан в учебных целях, для сайта pythonru.com «»»

Выбор, изменение и удаление лиг

Сначала внесем правки в наши вспомогательные модули.

Еще по теме:  Бот в Телеграмме выдает start и дальше не работает

В «dababase» в класс Database добавим новый метод insert_or_update_users .

# fonlinebot/database.py #. async def insert_or_update_users(self, user_id: int, leagues: str): user_leagues = await self.select_users(user_id) if user_leagues is not None: await self.update_users(user_id, leagues) else: await self.insert_users(user_id, leagues) #.

В настройки добавим переменные метрик времени:

Источник: pythonru.com

Бот отправляющий сообщения в Телеграмм

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

Telegram превратился также в автоматический инструмент, так как в нём есть большое количество ботов для разных целей — рассылки, поиска людей и информации, агрегаторы контента и другие. Они программируются разработчиками и способны выполнять множество полезных функций. В этой статье мы рассмотрим ботов, которые умеют отправлять сообщения в Telegram, а также узнаем, в чём выгода такого способа рассылок.

Рассылка Telegram

Чем хороши рассылки в Telegram?

Сейчас телефон есть у 99% населения, поэтому стали популярны рассылки по СМС. Иногда они даже приходят в виде спама тем, кто не подписывался на них. Но у традиционных СМС сообщений есть пару недостатков. Во-первых, они обходятся дорого. Если отправить одно-два сообщений стоит копейки, то когда речь заходит о рассылках, то отправлять нужно тысячи и десятки тысяч сообщений.

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

Рассылки в Telegram лишены этих недостатков. Во-первых, они дешёвые. При отправке тратится только небольшое количество интернет-трафика, который недорогой в каждой стране. Во-вторых, для интернета нет границ и отправлять рассылку можно в любую точку мира без изменения стоимости.

Еще по теме:  Как убрать все контакты из Телеграмма

Также можно отметить и другое достоинства — сообщения приходят мгновенно и без задержек и с почти стопроцентной доставкой. Это позволяет получать оперативные сведения для статистики рассылки. А ещё в Telegram можно отправлять мультимедиа, а не только текст — картинки, видео, аудиосообщения, и цена при этом не меняется.

Единственный гипотетический недостаток рассылок в Telegram заключается в том, что в некоторых странах этот мессенджер могут запретить. Однако, на данный момент таких стран нет. И попытки запрета уже были, но они оказались неудачными.

Ниже мы рассмотрим ботов, которые позволят делать рассылку в Telegram недорого и оперативно.

Бот для Telegram рассылок

SMSfeedback.ru — это сервис, который специализируется на рассылках через интернет. Поддерживаются отправки в Telegram, Viber, а также традиционные СМС-сообщения на телефон.

Подключить бота для рассылок можно по одному из тарифов. При отправке сообщений в Telegram стоимость будет от 40 до 50 копеек. Цена зависит от первоначального взноса. При минимальной первоначальном взносе 1 рубль, цена за сообщение будет 50 копеек. Если сразу оплатить 11 000 рублей, то цена будет 45 копеек, а если 200 000 рублей — будет 40 копеек за сообщение.

Даже если выбрать самый дорогой тарифный план при цене по 50 копеек за сообщение, то это всё равно получается в 6 раз дешевле, чем отправка традиционных SMS-сообщений. Об этом свидетельствует таблица ниже.

Цены на сообщения

У SMSfeedback есть определённые нюансы, которые следует учитывать при планировании рассылок:

Подробности о рассылке в Telegram через сервис SMSfeedback вы можете узнать на странице официального сайта сервиса. Там вы узнаете актуальные цены, особенности работы рассылки и получить возможность подключить эту рассылку. Кроме того, если у вас возникают какие-либо вопросы по работе с этим инструментом, то там вы найдёте телефоны и другие контакты поддержки.

Автоматическая отправка сообщений в Telegram

Рейтинг
( Пока оценок нет )
Загрузка ...