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

Как я и говорил в своей первой записи, на страницах этого дневника я собираюсь написать немного буковок на тему создания роботов (или ботов, как тебе нравится?) в Telegram. Собственно говоря, для создания таковых, я сам использую Python третьей версии, из чего следует то, что рассказывать буду я именно о Python.

Кто такие роботы и зачем они нужны

На самом деле роботы могут делать очень много интересных вещей, начиная рассылкой погоды, новостей, записей из ВКонтакте, поиском и скачиванием книг, музыки… в общем потенциал роботов ограничен разве что фантазией разработчика и API Telegram для ботов (последний ну очень уж богат возможностями).

К чему я всё это? Чтобы сложить небольшое представление о том, что мы будем делать дальше. Робот — это программа, написанная, кстати сказать, на любом языке программирования, и запущенная на каком-нибудь сервере (или на компьютере разработчика, в крайнем случае).

Пришло время начинать

Итак, для того, чтобы сделать своего первого робота, тебе потребуются:

Пишем TELEGRAM бота на Python

  • Компьютер (ну а как же без него?) на macOS, Linux или Windows;
  • Telegram, желательно также на компьютере, можно воспользоваться веб-версией, если лень скачивать;
  • Python 3 и менеджер пакетов pip для него (всё это мы будем устанавливать ниже, не переживай).

Если всё готово, есть хотя бы компьютер и Telegram, то можем начинать.

Устанавливаем Python 3

Python 3 по-разному устанавливается на разные OS (уж простите за тавтологию), поэтому ниже тебе нужно найти твою OS.

Если у тебя macOS

Отправляемся на официальный сайт Python и загружаем (можешь нажать прямо здесь) .pkg установщик последней стабильной версии Python 3.5.2. Запускаем и устанавливаем Python на наш компьютер. После завершения установки можно открыть Terminal и попробовать выполнить команду python3 . Если всё установилось правильно (как на картинке ниже), то у тебя на macOS теперь можно смело начинать программировать на Python.

Выполнение команды python3 на macOS.

Менеджер пакетов pip устанавливается автоматически вместе с Python3, выполнение команды pip3 -V должно вывести в терминал следующее:

Где вместо 8.1.2 будет указана твоя версия pip .

Если у тебя Windows

Переходим на официальный сайт Python и выбираем нужную нам версию 3.5.2: для 32-разрядных или версию для 64-разрядных систем (зависит от твоего компьютера; узнать разрядность можно, открыв Проводник — Этот компьютер — и по нажатию на правую кнопку мыши выбрать пункт Свойства).

Когда мы скачали нужную версию Python, запускаем установщик. Важно: на самом первом этапе установки необходимо отметить Add Python 3.5 to PATH , это очень упростит нашу работу в будущем. Затем нажимаем на Install now и ждём окончания установки.

Установка Python 3 на Windows.

Чтобы проверить, правильно ли установился Python, открываем меню Пуск и в строке поиска набираем командная строка (в Windows 10 открыть поиск можно, просто нажав на лупу рядом с кнопкой Пуск).

В открывшемся окне командной строки выполняем команду python . В ответ должна открыться консоль Python (начинается с >>> ) как на картинке ниже.

Запуск Python из командной строки Windows.

Выполняем команду exit() , чтобы выйти из режима интерпретатора Python. Менеджер пакетов pip так же должен быть установлен, чтобы проверить, выполни команду pip -V . В ответ в консоли должна отобразиться версия pip :

Еще по теме:  Как узнать свой api hash Telegram

В Linux и другие Unix-системы Python 3.5 устанавливается аналогично macOS.

Таким образом, мы подготовили наш компьютер для программирования и исполнения программ на Python 3.

Подготавливаем Python для создания роботов

Что такое «менеджер пакетов pip » и для чего он нужен нам, спросишь ты. Так вот, менеджер пакетов — это такая утилита, с помощью которой можно скачивать (и сразу устанавливать) различные модули для Python. В macOS нужно использовать команду pip3 вместо pip (команда pip здесь используется для встроенной версии Python 2.7).

Возвращаемся в терминал (или в командную строку) и выполняем следующую команду:

Что здесь просиходит? Мы обращаемся к pip (помни: в macOS это pip3 ) и хотим установить ( install ) волшебный модуль pyTelegramBotAPI , который и отвечает за создание и работу ботов.

Устанавливаем pyTelegramBotAPI

Если модуль успешно установился, то мы должны увидеть надпись Successfully installed pyTelegramBotAPI-x.x.x . Собственно говоря, существует множество других модулей для Python (и не только), с помощью которых можно быстро запустить Telegram-бота; простыми словами pyTelegramBotAPI — это такой «конструктор», в котором содержатся все необходимые нам компоненты-«кубики».

Можно переходить к самой интересной части — написанию кода нашего робота.

Пишем код нашего первого робота

Для того, чтобы писать код, нам понадобится редактор. Можно, конечно, воспользоваться и Блокнотом, но лично я бы не советовал. Лучше всего скачать бесплатный редактор Atom от создателей GitHub. Или Sublime Text 3 (но он платный, вроде бы). Я пользуюсь Sublime Text, и писать код буду в нём.

Ну, а тебе уж решать самому.

Перво-наперво подключаем модуль telebot , который мы установили с помощью pip . Делаем это так:

Регистрирация робота в Telegram.

Если логин никем не занят, то Bot Father отпавит нам сообщение об успешном создании нового бота. Всё, что нам нужно узнать из полученного сообщения — длинную строку, TOKEN бота. Это ключ, с помощью которого мы сможем управлять нашим роботом через Python.

В моём примере ключ: 242589731:AAGDz-F8q5TN0IfD3Y_D4WB0BmerHm1UYiw . Можешь не пытаться его использовать, он уже обновлён ?

Возвращаемся в текстовый редактор, и добавляем следующую строку, где присваиваем переменной TOKEN наш ключ-строку:

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

Отлично, мы зарегистрировали бота и смогли передать его управление Python.

А сейчас нужно подумать (а может, думать надо было с самого начала?) о том, что будет делать наш робот. Поскольку эта запись посвящена созданию «первого» робота в Telegram, я думаю, не стоит делать нашего бота очень сложным.

Пусть будет так: когда кто-то запускает робота, то робот спрашивает имя пользователя, и после того, как получает имя, приветствует его.

Наша библиотека pyTelegramBotAPI (модуль для Python) поддерживает обработчики (или хэндлеры), с помощью которых можно научить робота отвечать на различные сообщения. Подробнее об обработчиках можно почитать здесь. Создадим обработчик, который будет отвечать на команду /start (эта команда соответствует нажатию кнопки Start или Запустить в профиле бота в Telegram); внутри обработчика создадим функцию, в которой будем спрашивать пользователя его имя.

Объясню каждую строку кода:

  1. Обработчик, который отвечает на команду /start (или любые другие, какие указаны в списке);
  2. Функция в обработчике, которая спрашивает у пользователя его имя;
  3. В переменную sent записывается объект отправленного текстового сообщения с вопросом «Как тебя зовут?»; первый аргумент функции send_message — уникальный ID пользователя Telegram (получаем его из предыдущего сообщения message.chat.id ), который обратился к нашему боту, и которому нужно отправить сообщение; второй аргумент — строка, текст сообщения;
  4. Функция register_next_step_handler , принимающая в аргументы объект отправленного сообщения и имя следующей функции hello отвечает за то, что следующее сообщение от пользователя будет обработано функцией hello .
Еще по теме:  Как сменить браузер по умолчанию в Телеграмме

Далее создадим саму функцию hello , в которой и будем приветствовать нашего дорогого пользователя:

  1. Создаём функцию (в аргументы, кстати, и hello и start принимают объект входящего сообщения от пользователя, там есть текст, ID, и многое другое);
  2. Отправляем сообщение с приветствием, в name подставляем текст полученного сообщения от пользователя (то есть его имя).

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

Последнее, что осталось добавить в код:

Зачем? Можно, конечно, запустить робота и без этой строки, но тогда он проработает не более одной секунды (а может и меньше). Суть в том, что при помощи функции polling наш робот постоянно обращается к серверам Telegram и как бы спрашивает «есть ли новые сообщения для меня (т. е. робота)?», получая ответы от Telegram.

Весь код нашего робота должен выглядеть примерно так:

Код робота на Python.

Сохраняем код нашего робота в файл с расширением .py , например robot.py . Важно знать папку, в которую мы сохранили файл.

Возвращаемся в терминал (или командную строку) и выполняем следующую команду:

Команда для запуска робота в macOS.

Замечу, что в Windows используется команда python , а в macOS python3 (поскольку в macOS ещё установлен Python 2.7).

Запуск робота в macOS.

Ничего не происходит? Замечательно, всё так и должно быть. Может даже показаться, что терминал завис, но это совсем не так.

Если ты всё правильно сделал, то робот должен ответить:

Наш робот в Telegram.

Отправляем роботу наше имя.

Ответ от робота.

Прекрасно! Всё работает ☺️

Чтобы выключить робота, вернись в терминал и нажми сочетание клавиш Ctrl + c .

У тебя получилось сделать своего первого робота, поздравляю ?

Что дальше?

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

Telegram бот на Python для мониторинга состояния Ubuntu сервера

Для web-мастеров самым важным остается стабильность в работе серверов, однако как оперативно реагировать и устранять возникшие проблемы в их работе? С этой задачей лучше всего справится Telegram бот, написанный на Python, для мониторинга состояния Ubuntu сервера который будет автоматически отправлять Вам уведомления о недоступности тех или иных компонентов для оперативного реагирования и устранения возникших проблем.

Для автоматизации оповещений о недоступности веб-серверов Nginx, Apache, MySQL и других на Ubuntu сервере с помощью Telegram-бота на Python необходимо выполнить следующие шаги:

Установка необходимых пакетов

Перед тем как начать установку, необходимо убедиться, что сервер имеет Python 3, pip и git.

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

sudo apt update sudo apt install python3 python3-pip git

Создание нового Telegram-бота

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

Для этого следуйте инструкциям, приведенным в этом руководстве: https://core.telegram.org/bots#6-botfather.

Клонирование репозитория для отправки уведомлений

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

mkdir notify-telegram-bot cd notify-telegram-bot git clone https://github.com/python-telegram-bot/python-telegram-bot.git

Установка зависимостей

Перейдите в каталог python-telegram-bot, который вы только что склонировали, и установите зависимости с помощью команды:

cd python-telegram-bot pip3 install -r requirements.txt

Написание кода бота

Перейдем к написанию самого кода Telegram бота на Python, который будет выполнять мониторинг состояния Ubuntu сервера. Для этого откройте файл examples/echobot2.py с помощью любого текстового редактора и замените содержимое файла следующим кодом:

import telegram import subprocess bot = telegram.Bot(token=’YOUR_API_KEY’) chat_id = ‘YOUR_CHAT_ID’ def is_server_up(service_name): process = subprocess.run([‘systemctl’, ‘status’, service_name], stdout=subprocess.PIPE) output = process.stdout.decode(‘utf-8’) return ‘Active: active (running)’ in output def check_services(): services = for service in services: if not is_server_up(service): message = services[service] + ‘ is not running!’ bot.send_message(chat_id=chat_id, text=message) if __name__ == ‘__main__’: check_services()

Замените YOUR_API_KEY на API-ключ вашего бота и YOUR_CHAT_ID на ID вашего чата.

Проверка бота

Сохраните файл и запустите его с помощью команды:

Еще по теме:  Бот ТГ читать удаленные сообщения

python3 echobot2.py

Если все настроено правильно, бот должен отправить сообщение в ваш Telegram-чат, указывая, что сервер недоступен.

Автоматизация проверки доступности сервера

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

import time import os while True: os.system(‘python3 /path/to/echobot2.py’) time.sleep(300)

Замените /path/to/echobot2.py на полный путь к файлу echobot2.py , который вы только что создали.

Этот код будет проверять состояние сервера каждые 5 минут.

Запуск проверки в фоновом режиме

Чтобы запустить проверку в фоновом режиме, выполните следующую команду:

nohup python3 /path/to/check_services.py https://virtirio.com/blog/telegram-%D0%B1%D0%BE%D1%82/» target=»_blank»]virtirio.com[/mask_link]

Telegram Bot с Python для Todoist

В этом посте я объясню, как создать бота Telegram на Python. Todoist — отличный инструмент для управления списками дел. Хотя этот пост может быть просто общим руководством по созданию бота Telegram, я расскажу о подключении к Todoist API и внедрении его возможностей в Telegram, чтобы вы могли узнать больше о работе с реальным API и взаимодействии с пользователями в ботах Telegram.

Предполагается, что вы знакомы с основами Python. Вы узнаете:

  • Создание бота Telegram с отцом бота Telegram
  • Работа с API в Python
  • Написание скрипта бота Telegram на Python
  • Взаимодействие с пользователями в боте Telegram (отображение кнопок, ответ на сообщение и т. Д.)

Создание бота Telegram

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

Получите имя пользователя бота (дескриптор Telegram) и токен доступа

После этого вы получите сообщение с данными вашего бота, включая токен доступа вашего бота для HTTP API. Мы будем использовать это в следующих шагах.

Взаимодействие с API в Python

Чтобы создать полезного бота для Telegram, вам необходимо хорошо разбираться в работе с API.

Я прочитал много руководств по созданию ботов Telegram, но я хотел написать бота, который работает с реальным API, а не бота, чтобы показывать картинки с кошками (что, кстати, тоже очень круто).

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

Также, используя Todoist API, вы узнаете, как взаимодействовать с реальными API.

APIHandler Класс

У Todoist есть официальная библиотека Python API. С его помощью вы можете легко взаимодействовать с Todoist API. Сначала мы собираемся изучить эту официальную библиотеку. Затем с помощью пакета запросов Python мы взаимодействуем с Todoist REST API. Поскольку многие сторонние API не поддерживают такие библиотеки Python, важно научиться использовать пакет запросов Python для выполнения HTTP-запросов для RESTful API.

Получение токена доступа к Todoist

Прежде чем мы начнем, вам нужно получить токен доступа для Todoist API. Просто зайдите в Консоль приложения Todoist и создайте новое приложение. После создания приложения вы увидите client id и client secret , которые необходимо использовать в приложении производственного уровня для аутентификации пользователей.

На данный момент нам нужно только получить токен доступа для наших тестов. Прокрутите вниз, и вы увидите свой токен доступа. Теперь давайте попробуем это в действии.

Официальная библиотека Python Todoist

Теперь установите пакет TodoistAPI с помощью программы Python, выполнив эту команду: pip install todoist-python

Используя библиотеку API Todoist, получить проекты очень просто.

Не забудьте указать свой токен доступа в api_token переменную.

Взаимодействие с RESTful API с использованием запросов Python

Для вызова API вам необходимо использовать пакет запросов Python. Установите его с помощью pip: pip install requests

Пакет запросов имеет две основные функции, которые мы можем использовать для выполнения get или post запросов.

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