Создание телеграм-ботов для организации образовательного пространства учащихся

- 13:01Проекты

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

Наталья ДАШКО, учитель английского языка
Григорий ДАШКО, учитель английского языка и информатики
ГУО «Средняя школа № 2 г. Орши имени Б.Л.Хигрина»,
Витебская область

 

 

В материале дается инструкция по созданию телеграм-бота. Познакомиться с тем, как будет работать такой бот, можно ЗДЕСЬ

Этапы создания телеграм-бота:

1) регистрация;
2) настройка окружения;
3) создание основных функций;
4) развертывание.

 

Рассмотрим подробнее каждый из этапов:

Регистрация

1. Ищите BotFather в Telegram и начните диалог с командой /start.

2. Отправьте команду /newbot.

3. BotFather запросит имя для вашего бота. Это имя, которое пользователи будут видеть.

4. Затем он запросит уникальное имя пользователя для бота (заканчивающееся на «bot», например, my_test_bot).

5. После успешного создания, BotFather пришлет вам токен. Этот токен нужен для аутентификации и взаимодействия с ботом через API. Он впоследствии вставляется в код приложения.

 

Этапы «Настройка окружения» и «Создание основных функций» предполагают программирование с использованием языка python и библиотеки python-telegram-bot.

Мы предлагаем вашему вниманию шаблон main_.py, который вы сможете адаптировать под свои нужды:

«

import logging
from telegram import ForceReply, Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters

logging.basicConfig(
    format=»%(asctime)s — %(name)s — %(levelname)s — %(message)s», level=logging.INFO
)
logging.getLogger(«httpx»).setLevel(logging.WARNING)
logger = logging.getLogger(__name__)

# В этом блоке даются слова и статьи их описывающие.
articles = {
«слово1»: «определение1»,
«слово2»: «определение2»
}

# Блок приветствия новому пользователю бота
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    «»»Send a message when the command /start is issued.»»»
    user = update.effective_user
    await update.message.reply_html(
        rf»Здравствуйте {user.mention_html()}! Какое слово Вас интересует?»,
        reply_markup=ForceReply(selective=True),
)

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    «»»Send a message when the command /help is issued.»»»
    await update.message.reply_text(«Help!»)

async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    «»»Echo the user message.»»»
    await update.message.reply_text(update.message.text)

# Блок реакции, если запрашиваемого слова нет в нашем списке
async def article_handler(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    «»»Send a predefined article based on user input.»»»
    user_input = update.message.text.lower()
    article = articles.get(user_input, «Информация по этому слову отсутствует.»)
    await update.message.reply_text(article, disable_web_page_preview=True)

# Блок токена
def main() -> None:
    «»»Start the bot.»»»
application = Application.builder().token(«Идентификатор_Бота»).build()

application.add_handler(CommandHandler(«start», start))
application.add_handler(CommandHandler(«help», help_command))
application.add_handler(MessageHandler(filters.TEXT &
~filters.COMMAND, article_handler))
application.add_handler(MessageHandler(filters.TEXT &
~filters.COMMAND, echo))

application.run_polling(allowed_updates=Update.ALL_TYPES)

if __name__ == «__main__»:

    main()

«

Развертывание бота предполагает размещение его в сети интернет у хостера c поддержкой python. Как правило, телеграм-боты принято размещать на vps-хостинге. Однако возможно его размещение и полноценное функционирование и в рамках shared-hosting, что кратно дешевле варианта vps. В таком случае не обойтись без активной помощи техподдержки провайдера. В нашем случае проект помогли реализовать специалисты west-hoster.by.

 

Поделиться ссылкой:

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

Добавить комментарий