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

- 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.

 

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

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

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