QR код не запускает бота Телеграм

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

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

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

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

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

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

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

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

5 урок, телеграм бот не работает


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

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

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

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

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

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

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

Перед отправкой текста для выбора лиг, я сохранил его будущий 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

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

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 «»»

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

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

В «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 объявили иностранным сервисом. Вот почему это плохо

Дата публикации: 23 января 2023
Редактор TexTerra
Время чтения: 4 минуты

Telegram объявили иностранным сервисом. Вот почему это плохо

Александр Хлынов Редакция «Текстерры»

В субботу 21 января Роскомнадзор внес Telegram в реестр иностранных сервисов, которым с 1 марта 2023 года будет запрещена интеграция с российскими банками. То есть, речь идет о запрете для банков размещать свои платежные боты в Telegram.

В условиях, когда магазины приложений (App Store и Google Play) удаляют ПО российских компаний, финансовые организации ищут возможности остаться удобными для клиентов. Они размещают приложения на своих сайтах, расширяют возможности личных кабинетов клиентов, выходят с платежными ботами в мессенджеры…

Их поддерживают и магазины, давая возможность людям оплачивать покупки с телефона, без использования карт – через QR-код на экране платежного терминала или с помощью такого же QR-кода, но распечатанного терминалом на кассовой ленте.

Видя сложности, возникшие у российских пользователей и банков, Telegram начал развивать платежный функционал для бизнеса.

Словом, бизнес, как всегда, решает проблему удобными для пользователей способами.

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

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

Запрет на интеграцию касается не только банков. Согласно принятым поправкам к закону «Об информации», подготовленным депутатом Антоном Горелкиным, с 1 марта 2023 года подключать службы денежных переводов через иностранные сервисы будет запрещено всем. Госструктурам же будет запрещено пересылать через такие мессенджеры личные данные, информацию о платежах и банковских счетах.

Еще по теме:  Приложения для iPhone через ТГ

Эксперты объясняют, что интеграция не подразумевает выход операций на сервера мессенджеров. Как рассказал старший вице-президент ВТБ Никита Чугунов, никакая информация, являющаяся банковской тайной, через мессенджеры не передается – все операции «остаются внутри защищенной системы банка».

Михаил Манченко,project-менеджер TexTerra:

«Проблема в том, что ВТБ в Telegram нельзя назвать интеграцией, так как клиенты им пользуются не через сам чат Телеграма, а через web-приложение, которое находится в нём:

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

На отсутствие важных уточнений в законе, которые хоронят всю проделанную Телеграмом и банками работу, указывает и руководитель практики интеллектуальной собственности юридической фирмы DRC Владимир Ожерельев: запрет «не оставляет лазеек по использованию Telegram даже для вспомогательных банковских сообщений».

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

В Телеграме есть несколько платежных ботов, которые можно было использовать. Такие же возможности есть в WhatsApp, Messenger и Viber. Но не для России (запрет действует со стороны разработчиков и владельцев этих мессенджеров). Так куда же теперь банкам и другим организациям переносить свои платежные приложения?

Михаил Манченко,project-менеджер TexTerra:

«Организовать платежи внутри чатов можно не только в упомянутых мессенджерах. Ближайший вариант интеграции – это ВКонтакте и принадлежащая ему соцсеть Одноклассники».

Источник: texterra.ru

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