Share This
Связаться со мной
Крути в низ
Categories
//Telegram бот на Python для генерации случайных цитат

Telegram бот на Python для генерации случайных цитат

16.10.2021Category : Python

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

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

Telegram — это бесплатное кроссплатформенное облачное ПО для обмена мгновенными сообщениями (т.е. мессенджер). Имеет открытый исходный код. Помимо обмена сообщениями он также предоставляет функции видеосвязи, обмен файлами и ещё много других функций.

Прежде чем начать

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

Итак, сегодня мы рассмотрим:

  • настройку профиля бота в Telegram
  • написание кода для бота на Python

Погнали!

Настройка профиля бота в Telegram

Чтобы настроить новый бот, нам нужно сначала зарегистрировать его. Таким образом мы получим токен для доступа к Telegram API. Если у вас нет учетной записи Telegram, создайте ее здесь.

Щелкните значок поиска в Telegram, затем введите @botfather в строке поиска.

BotFather – это официальный бот, созданный Telegram для облегчения создания пользовательских ботов.

telegram bot na python dlja generacii sluchajnyh citat 08c29e5 - Telegram бот на Python для генерации случайных цитат

Теперь нажмите кнопку «Start», чтобы начать. Далее вы должны получить следующее сообщение:

telegram bot na python dlja generacii sluchajnyh citat 9eb2f2b - Telegram бот на Python для генерации случайных цитат

Введите /start, чтобы начать.

Затем мы создаем бота, выполнив команду /newbot.

telegram bot na python dlja generacii sluchajnyh citat 2bc0e52 - Telegram бот на Python для генерации случайных цитат

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

telegram bot na python dlja generacii sluchajnyh citat 6459ed8 - Telegram бот на Python для генерации случайных цитат

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

telegram bot na python dlja generacii sluchajnyh citat bf5f224 - Telegram бот на Python для генерации случайных цитат

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

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

Итак, мы создали наш бот в Telegram! Теперь давайте научим его что-нибудь делать!

Создайте новый каталог в своей любимой среде разработки и перейдите в него.

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

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

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

python -m venv env

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

source env/bin/activate

Затем нам нужно создать группу в Telegram и добавить нашего бота в качестве участника этой группы.

telegram bot na python dlja generacii sluchajnyh citat 3ff9830 - Telegram бот на Python для генерации случайных цитат

Теперь нам нужно получить идентификатор чата, мы можем сделать это, отправив эту команду в виде сообщения в группе Telegram:

/my_id BOT_NAME

После этого нам нужно открыть указанный ниже URL-адрес в браузере, чтобы получить идентификатор нашего чата:

https://api.telegram.org/botBOT_TOKEN/getUpdates  BOT_TOKEN = the token we copied earlier

Мы получаем ответ в виде JSON (это что-то вроде словаря Python), который содержит наш идентификатор чата.

telegram bot na python dlja generacii sluchajnyh citat d5fc912 - Telegram бот на Python для генерации случайных цитат

Теперь мы создаем новый файл python с именем bot.py и добавляем в него следующие строки кода:

import requests import time  # list of quotes quotes = [     'First, solve the problem. Then, write the code. – John Johnson',     'Experience is the name everyone gives to their mistakes. – Oscar Wilde',     'Code is like humor. When you have to explain it, it’s bad. – Cory House',     'Before software can be reusable it first has to be usable. – Ralph Johnson',     'Optimism is an occupational hazard of programming: feedback is the treatment. - Kent Beck' ]  # loop through the quotes for quote in quotes:     url = 'https://api.telegram.org/bot1848805395:AAHaacRzz3vDJ8vrQqVZ4vMPTqY1OBOQ12Q/sendMessage?chat_id=CHAT_ID&text="{}"'.format(quote)     requests.get(url)     # sends new quotes every 20seconds     time.sleep(20)

Перед тестированием бота нам необходимо установить модуль requests. Делается это так:

pip install requests

Теперь давайте протестируем наш бот, запустив наш файл Python в терминале:

python bot.py

telegram bot na python dlja generacii sluchajnyh citat 3443448 - Telegram бот на Python для генерации случайных цитат

Ура, всё работает!

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

Для получения случайных цитат мы будем использовать этот API и команду /random .

Добавим следующие строки кода в начало нашего файла:

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters import json

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

telegram_bot_token = "TOKEN"  updater = Updater(token=telegram_bot_token, use_context=True) dispatcher = updater.dispatcher  def random(update, context):     # fetch data from the api     response = requests.get('http://quotes.stormconsultancy.co.uk/random.json')     data = response.json()     # send message     context.bot.send_message(chat_id=update.effective_chat.id, text=data['quote'])   # linking the /random command with the function random()  quotes_handler = CommandHandler('random', random) dispatcher.add_handler(quotes_handler)

Что ж, давайте запустим файл и напишем /random в нашу группу в Telegram. Наш бот должен ответить случайной цитатой.

telegram bot na python dlja generacii sluchajnyh citat 4d40ec2 - Telegram бот на Python для генерации случайных цитат

Заключение

Итак, сегодня мы разобрали, как создать Telegram бот на Python.

Наш бот выдает случайные цитаты, но вообще Telegram-боты способны на многое и могут пригодиться для разных целей. Вы вполне можете подключить своего бота к другим API и разместить его на платформе, такой как Heroku, чтобы он был доступен 24/7.

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

Вот некоторые API, которые вы можете интегрировать со своим Telegram-ботом:

  • Случайные изображения собак
  • Открыть карту погоды
  • Конвертер валют
  • Футбол
  • Yahoo Finance

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

Перевод статьи «Building a Telegram Bot using Python to Generate Random Quotes».

От редакции Pythonist. Возможно, вам также будут интересны следующие статьи:

  • Создание телеграм-бота с веб-интерфейсом при помощи Python и Replit
  • Telegram-бот: от первой строчки до размещения
  • Пишем telegram-бота с задачками на Python и BS4
  • Телеграм бот для e-commerce на Python и Fauna
  • 4 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

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

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close