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

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

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

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

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

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

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

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

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

За 10 минут — выгрузка (деплой) телеграм-бота на хостинг и его запуск.


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-бота на Google Cloud Platform

При написание телеграмм ботов столкнулся с вопросом, как быстро и бесплатно сделать так, чтобы бот работал постоянно. Варианты с Heroku и Pythonanywhere имеют слишком маленькие лимиты, если у вас более одного бота. Поэтому я решил воспользоваться GCP. Платформа предоставляет бесплатно 300$ на год + огромные скидки при использование этих средств(до 94%).

Как захостить вашего бота?

Шаг 1. Регистрация на GCP

Переходим на сайт GCP и нажимаем Get started for free.

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

Шаг 2. Создаём виртуальную машину

После регистрации вы окажетесь на главной странице сервиса. Вам необходимо выбрать в разделе Ресурсов вкладку Compute Engine.

Необходимо создать новый экземпляр.

Если вы не будете развертывать БД на виртуальной машине, то можете взять g1-small, иначе советую n1-standart.

Необходимо будет выбрать также ОС. Я выбрал Debian GNU/Linux 9 (stretch).

Всё, ВМ создана. Обычные её развертывание занимает от 1 до 5 минут.

Шаг 3. Настройка виртуальной машины

Вы можете подключиться по SSH со своего ПК или же взаимодействовать через платформу.
Для этого нажмите на SSH.

У вас откроется терминал Linux в новом окне.

Теперь перейдем к настройке. Сначала вводим команду:
sudo apt-get update

для обновления информации об новейших версиях пакетов.
После вводим:
sudo apt-get install python3-setuptools sudo apt-get install python3-pip

Сам Python устанавливать не нужно, он уже есть.
Теперь необходимо установить все необходимые билиотеки. Есть небольшой нюанс, все библиотеки необходимо устанавливать дважды:

pip3 install ‘name_of_package’

для использования через коману python3, и
sudo pip3 install ‘name_of_package’

для systemd. Данная утилита поможет вам запустить бота и перезапускать его, если он упадёт.
Самый простой способ запускать бота через python3, но он будет выключаться, если вы будете отключаться. Можно использовать screen, но бот не будет сам перезапускаться. Также можно использовать crontab с проверкой порта, но мне кажется этот вариант сложнее, чем systemd.

Шаг 4. Заливаем бота на сервер

Есть два способа залить вашего бота. Если вы не дружите с Git, вы можете просто заархивировать бота в .tar и залить его на сервер:

После этого разархивируем его командой:
tar -xvf yourfile.tar

Теперь ваш бот хранится в папке с названием архива.
Второй способ через Git. Я думаю, не стоит обьяснять как это сделать людям, которые умеют его использовать.
После установки его командой:

Еще по теме:  Где снять деньги в Телеграмм на карту

sudo apt install git

Вы можете клонировать его себе на ВМ.
После этого переходим к настройке systemd. Для этого переходим в его директорию:

cd /etc/systemd/system

И создаём файл bot.service:
sudo nano bot.service

Вписываем в открывщиеся окно следующее:
[Unit] Description=Telegram bot ‘Имя бота’ After=syslog.target After=network.target [Service] Type=simple User=root WorkingDirectory=/home/название вашего юзера/название папки в которой лежит бот ExecStart=/usr/bin/python3 /home/название вашего юзера/название папки в которой лежит бот/bot.py RestartSec=10 Restart=always [Install] WantedBy=multi-user.target

Закройте и соханите файл. Закрывается с помощью команды Ctrl+X.
После этого введите команды по очереди:

sudo systemctl daemon-reload sudo systemctl enable bot sudo systemctl start bot sudo systemctl status bot

Если всё будет хорошо, вы увидите примерно следующее:

Всё, теперь ваш бот работает самостоятельно. Надеюсь моя статья поможет вам захостить вашего бота.

P.S.

1.Проверьте вашего бота на ошибки

Запустите вашего бота и проверьте его работу прежде, чем запускать его через systemd. Для этого перейдите в папку с ботом и запустите через python.

cd python3 bot.py

2.Добавьте в файлы с py-скриптами кодировку

#!/usr/bin/env python # -*- coding: utf-8 -*-

Вставить в начале файла.

3.Ошибки в systemd

Если вы проверяли бота на ошибки и он нормально работал, но он не хочет запускаться в systemd, то вы можете посмотреть логи и понять в чём ошибка просмотрев файл:

sudo nano /var/log/syslog

Вы можете скачать этот файл и просмотреть на своём компьютере через Notepad++.

4.Апдейт бота

Если вы хотите дописать или залить новую версию бота, то введите команду:
sudo systemctl stop bot

Провидите все необходимые манипуляции. А потом введите следующие команды, чтобы он опять заработал:
sudo systemctl daemon-reload sudo systemctl start bot sudo systemctl status bot

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

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

FAQ

Автор fast12v0_steleg На чтение 5 мин Просмотров 2.4к. Опубликовано 02.02.2020

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

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

Помощниками при работе с приложением служат роботы – автоматические программы, заточенные создателями под определенные задачи и решение вопросов. Разобраться, как добавить бота в Telegram и пользоваться его интересными возможностями по максимуму, может практически любой, как в версии на iPhone, так и на Андроид.

Зачем нужны боты

По своей сути bot – это реализованный программный алгоритм, поддерживающий беседу с живым человеком. Руководствуется он ключевыми запросами и параметрами.

Как добавить бота в Телеграм

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

Современные хелперы справляются с консультированием клиентов по стандартным ситуациям не хуже реальных сотрудников. И не всегда понятно, кто скрывается за аватаркой в диалоге: человек или автомат.

Как работать с ними

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

  • добавлять в беседы;
  • настраивать или обучать;
  • дополнять информацией.

При необходимости, если хотите, можно бесплатно создать своего собственного хелпера, придумав ему имя и очертив круг задач. Осваивать работу нужно от простого к сложному.

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

Как добавить бота в Телеграм

Чтобы добавить нового бота в канал Telegram, необходимо сделать три шага по нашему совету:

Важно! Автомат сможет присоединиться к беседе, если эту возможность для сторонних пользователей не заблокировал автор.

Вся процедура добавления не занимает более двух минут. Немного сложнее будет процесс настройки под конкретные установки.

Поиск

Получение информации о боте

Обычно о принадлежности бота к той или иной категории говорит его название. Но не всегда по имени можно догадаться о назначении помощника. Получить информацию помогут каталоги.

Добавление в группу

Если надо предоставить возможность участникам какой-либо группы взаимодействовать с ботом, то, чтобы начать, понадобится добавить бота в группу. Для этого перейдите к настройкам самой группы и выберите «Add member». Далее через поиск находят определенного бота и добавляют его к чату.

Создание своего

Способы добавления бота в Телеграм

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

Как выглядит процесс пошаговой инструкции:

  1. Загрузить, инсталлировать и запустить Telegram на телефон или ПК.
  2. Напишите команду «Manybot» через меню поисковика.
  3. Кликнуть кнопку «Start», затем согласиться на добавление бота.
  4. Ознакомиться с инструкцией во всплывающем сообщении, выполнить действия согласно ей.
  5. Зайти в «BotFather».
  6. Откройте переписку с хелпером через кнопку «Отправить сообщение».
  7. Ознакомиться с командами для помощника, нажав на «Старт».
  8. Ответить с помощью «newbot».
  9. Ввести имя помощника на латинской раскладке с окончанием –bot.
  10. Теперь обязательно следует сохранить API во вкладке «Manybot».
  11. Загрузить информацию о функциях либо пропустить этот раздел.
  12. Дождаться уведомления о том, что помощник является созданным.

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

Обратите внимание! Создавать новые чаты лучше на ПК, чтобы было удобнее применять дополнительные файлы.

Если бот не работает

Чаты используют серверы программы в облачных хранилищах, именно их производительность оказывает влияние на реакцию. Поэтому при зависании помощника поможет время. Если же программист, задающий код на Java, допустил просчет, или владелец прекратил поддержку содержания «автоответчика», придется поискать более работоспособный код.

Другие способы использования ботов

Помимо автоматического информирования у роботов есть ряд дополнительных возможностей.

Как работать с ботом в Телеграме

Они могут делать и выполнять следующие задачи:

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

Если добавить бота в администраторы канала Telegram, помощник сможет работать админом в реальном времени.

Доступными будут такие возможности:

  • запускать информацию и рекламу;
  • подключать интерактивные сервисы для клиентов;
  • устанавливать контакт с аудиторией страницы;
  • добавление в подписчики по заданным параметрам.

Плюсы такого администрирования: человек работает с программой в удобное время, а робот с аудиторией – в нужное, избавляя своего создателя от многократного дублирования одинаковых действий. Хороший код может фактически вести сайт или аккаунт.

Выводы

Работа с ботами универсальна для версий на Айфоне, устройствах на Android и стационарных компьютерах. С помощью хелперов можно осуществлять продажи, получать дополнительный доход на продвижении брендов, ведении блога или консультировании клиентов.

Подробная инструкция с описанием видна на видео ниже:

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

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