Сделать бота на python Telegram

Содержание

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

Node.js

Telegraf

Полная поддержка всех функций Bot API, включая игры, инлайн-режим, платежи и многое другое.

node-telegram-bot-api

  • Исходный код
  • Документация
  • Канал в Telegram

tgapi

Telebot

Botgram

Микрофреймворк для создания ботов.

telegram-bot-api

Slimbot

PHP

PHP Telegram API

Полная имплементация Bot API на PHP7.

PHP Telegram Bot

Библиотека с поддержкой плагинов.

Bot API PHP SDK

Мощный SDK с поддержкой Laravel.

TelegramBotApiBundle

Обёртка для Symfony.

Telegram Bot Api Base

PHP Telegram Bot

TuriBot

Python

AIOGram

Полностью асинхронная библиотека для Telegram Bot API, написанная на asyncio и aiohttp.

Telegram Bot на Python / Создания ботов для начинающих за 30 минут

python-telegram-bot

Мощная и активно развивающаяся библиотека

Telepot

Фреймворк для создания ботов на Telegram Bot API.

Telegram Bot Service

Фреймворк для создания ботов. Основан на библиотеке Twisted для Python 3.

telebot

Небольшая библиотека для создания ботов. Подходит для развёртывания на Google App Engine.

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

Python бот для Telegram — Создаём своего первого робота в Telegram при помощи Python 3

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

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

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

Еще по теме:  Как вести тематический Телеграмм канал

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

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

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

  • Компьютер (ну а как же без него?) на 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 :

В 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

Телеграмм-бот на Python

Недавно я попал на стажировку в новую для себя IT-компанию и наш (моей команды) проект был — бот для телеграмма, который автоматизирует часть работы hr-менеджеров. Первую неделю нам дали на самостоятельное изучение всего, что мы посчитаем нужным (а я убежден, что лучший способ что-то изучить — это практика), так что я начал действовать. Язык программирования был выбран python (наверное понятно из обложки почему), так что в этой статьи я разберу пример именно с ним.

BotFather

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

Telebot и сила python

Мне всегда казалось, что создавать бота — это не так просто. Честно говоря, давно хотел попробовать, но то ли не хватало времени (думал, что это займет не один вечер), то ли не мог выбрать технологию (как-то смотрел туториал для c#), ну а скорее всего было просто лень. Но тут мне понадобилось это для работы, так что я больше не смел откладывать.

Сила python заключается в его популярности. А, как следствие, в появлении огромного количества сторонних библиотек практически под все нужды. Именно это сделало возможным написание примитивного бота (который просто отвечает однотипно на сообщения) в 6 (ШЕСТЬ!) строчек кода. А именно:

Первое сообщение

На самом деле бот будет отвечать только на команду /start, но для начала неплохо. Здесь все довольно просто: в первой строчке импортируется библиотека telebot (для ее работы необходимо установить пакет pyTelegramBotAPI командой pip install pyTelegramBotAPI (НЕ pip install telebot !), далее создаем объекта бот, используя токен, который нам прислал BotFather. Третья строчка проверяет, что присылают пользователи (в данном случае это только команда “/start”), и, если проверка пройдена, то бот отправляет ответ с текстом “Hello!”. Последняя строчка, наверное, самая сложная для понимания, и в следующих разделах я ее подробно разберу. Сейчас же я только скажу о ее предназначении — она заставляет бота работать, то есть «реагировать» на полученные сообщения.

Flask Посылай запросы на localhost», ведь для каждого сервера localhost будет разным. Еще одна проблема заключается в том, что метод setWebhook поддерживает только https url-ы. Для решения этих проблем можно воспользоваться программой ngrok, которая строит туннель до локального хоста. Скачать ее можно по ссылке ngrok, а для запуска туннеля достаточно ввести команду “ngrok http 5000”. Должно получиться так:

ngrok

Теперь можно задействовать метод setWebhook, например, через postman. Нужно отправить post запрос на https://api.telegram.org/bot/setWebhook с указанием в теле нужного url. Должно получиться аналогично:

setWebhook

Соединение

Чем больше я работал с библиотекой telebot, тем больше она мне нравилась. Хотелось бы, используя приложение на flask’e, не терять эту возможность. Но как это сделать? Во-первых, мы можем вместо нашей функции send_message использовать готовую из библиотеки. Это будет выглядеть так:

Здесь мы пользуемся методом set_webhook, аналогично тому, как мы делали это ранее через postman, а на пустом роуте прописываем «немного магии», чтобы успешно получать обновления бота. Конечно, это не очень хороший способ, и в дальнейшем лучше самостоятельно прописывать функционал для обработки входящих сообщений. Но для начала, я считаю, это лучшее решение.

Заключение

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

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

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