Как создать базового бота Telegram с Python 3

Как создать базового бота Telegram с Python 3

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





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





Начиная

Для этого урока мы собираемся использовать Python 3, Python-Telegram-бот а также Запросы библиотека и TheCatAPI .





У каждого бота в Telegram есть уникальный токен, который помогает ему общаться с Бот API чтобы использовать интерфейс обмена сообщениями приложения. Bot API, одна из самых популярных функций Telegram среди разработчиков, позволяет использовать его сообщения в качестве интерфейса.

отсортировать Amazon по количеству отзывов

Чтобы получить токен, начните разговор с @BotFather который, как следует из названия, является официальным ботом, позволяющим создавать и настраивать собственных ботов. Вы можете получить доступ к боту, используя данную ссылку, или выполнить поиск «@botfather» в Telegram.



Оказавшись в чате, создайте своего бота, набрав / newbot команда. Продолжайте указывать имя и логин вашего бота (мы решили назвать наш @pawsomebot). После этого вы получите токен, уникальный для вашего бота.

Теперь, когда у нас есть все предпосылки, пора переходить к захватывающей части!





Установка библиотек

Если вы используете Windows, откройте командную строку и введите следующие команды:

pip install python-telegram-bot
pip install requests

Если вы используете macOS или Linux, используйте вместо этого следующие команды на своем терминале. Кроме того, в Linux убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.





pip3 install python-telegram-bot
pip3 install requests

Написание программы

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

Теперь давайте импортируем библиотеки, которые мы установили ранее, вместе с некоторыми из их встроенных функций.

from telegram.ext import Updater, CommandHandler
import requests
import re

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

Начнем с функции получения URL-адреса изображения, что можно сделать с помощью модуля запросов. В этой функции мы загружаем данные JSON случайного файла, предоставленного TheCatAPI, и извлекаем его URL для дальнейшего использования. Чтобы посмотреть формат объекта JSON, перейдите к https://api.thecatapi.com/v1/images/search в вашем браузере. Вы заметите что-то вроде этого:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

Обратите внимание, что объект JSON - это массив, содержащий словарь. Этот словарь содержит URL с ключом url. Чтобы извлечь URL-адрес, нам нужно указать первый элемент массива, а затем соответствующий ключ.

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

Далее нам нужно отправить это изображение в чат пользователя. Для этого нам понадобится URL изображения, а также уникальный идентификатор чата пользователя. Для этого создадим функцию-оболочку. Сначала мы называем getUrl () . для получения URL-адреса случайного изображения - этот URL-адрес изменяется каждый раз, когда ваша программа выполняет итерацию по функции.

Затем следует получение идентификатора чата пользователя-получателя, который определяет целевое местоположение бота для сообщений, и анализ URL-адреса с помощью встроенного API бота. Отправить фото() функция.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

Чтобы узнать больше о различных встроенных функциях Bot API и о том, как они работают, посетите Telegram официальная документация после этого урока.

Наконец, давайте создадим функцию, которая контролирует общую работу бота. В этой функции - условно называемой main () - мы отправляем HTTP-запрос в API бота, используя токен, полученный в начале руководства, а затем определяем, как будет выглядеть пользовательское взаимодействие бота. В таком простом случае, как наш, это по сути означает запуск бота и вызов sendImage () функция по запросу пользователя.

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

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

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Ваш собственный Telegram-бот

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

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

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

Разместите своего бота Telegram онлайн

Теперь, когда у вас есть бот, попробуйте закрыть main.py на своем ПК и использовать бота в своем приложении для обмена сообщениями Telegram. Он все еще отвечает на /мяу команда? Нет, это не так.

Как новичок, вы можете быть сбиты с толку, почему main.py на вашем ПК должен быть запущен и работать, если вы уже создали бот, работающий в Интернете. Причина этого в том, что программа использует ваш компьютер в качестве локального сервера для отправки HTTP-запросов к API, используемым в этой программе.

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

Один из способов сделать это - использовать недорогую печатную плату (PCB), такую ​​как Raspberry Pi, для настройки собственного веб-сервера и использования его для запуска вашей программы. Он имеет те же преимущества, что и запуск программы на вашем ПК, без затрат на то, чтобы держать его включенным весь день и ночь, поскольку печатные платы, как правило, имеют значительно меньшее энергопотребление.

Кроме того, вы также можете развернуть свою программу в облаке. Перейдите на платформу хостинга веб-приложений, такую ​​как Heroku, AWS, Google Cloud или Microsoft Azure, и выберите подписку, которая наилучшим образом соответствует вашим потребностям. Мы рекомендуем выбрать бесплатную пробную версию или подписку и обновлять ее по мере увеличения масштаба или объема вашей программы.

Делиться Делиться Твитнуть Эл. адрес Как разместить свой сайт Python бесплатно на Heroku

Вам нужно бесплатно разместить небольшой веб-сайт? Heroku может быть именно тем, что вы ищете.

Читать далее
Похожие темы
  • Программирование
  • Python
  • Телеграмма
  • Чат-бот
  • Боты для социальных сетей
Об авторе Яш Челлани(Опубликовано 10 статей)

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

Ещё от Yash Chellani

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться