Диплом: Разработка чат-бота как сервиса для прохождения тестов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
32
При получении обновлений используется push-модель через
webhooks. Чтобы использовать веб-узлы, регистрируются URL-адрес с
API-интерфейсом бота, и всякий раз, когда у Bot API есть обновление, то
есть когда пользователь взаимодействует с ботом, он сделает HTTP-запрос
на этот URL-адрес, содержащий обновление. Приложение будет
прослушивать запросы по этому URL-адресу и может соответствующим
образом реагировать на входящие обновления по мере их поступления. Так
работает бот Telegram в первом примере. [37]
Какой бы метод бот не использовал для получения обновлений, он
будет получать JSON-сериализованные объекты обновления в
определенном формате. Ниже приведен пример входящего обновления,
содержащего текстовое сообщение (рисунок 10).
Рисунок 10 – Пример входящего обновления
33
Обновление всегда имеет поле update_id. Оно также будет содержать
еще одно поле в зависимости от типа взаимодействия пользователя с
ботом. В приведенном выше примере отправлено боту сообщение, чтобы
обновление содержало поле сообщения с такими полями, как текст
сообщения, пользователь, который отправил его, и чат, в который он был
отправлен. Ниже приведен пример обновления, полученного, когда
пользователь делает встроенный запрос (рисунок 11). [37]
Рисунок 11 – Пример обновления с встроенным запросом
Вместо поля сообщения обновление содержит поле inline_query,
содержащее текст запроса и пользователя, выполнившего встроенный
запрос. Можно увидеть все возможные поля обновления в документации
API бота для типа обновления.
2.1.5. Вызов методов Telegram Bot Api
Методы Telegram Bot API - это в основном удаленные вызовы
процедур (RPC), выполненные по протоколу HTTP. Можно найти список
доступных методов в документации по API-интерфейсу бота. Каждый
34
метод имеет имя и некоторые параметры. Например, метод sendMessage
заставляет бота отправлять текстовое сообщение в чат. [38]
Точно так же, как API Telegram, все взаимодействия с API-
интерфейсом бота выполняются с помощью методов вызова (для
настройки веб-хоста требуется вызвать метод setWebhook с URL-адресом
веб-хоста в качестве параметра). [38]
Методы вызываются путем запроса HTTP-запроса, содержащего
параметры метода, к конечной точке API, соответствующей боту, и
вызываемому методу. API-интерфейс бота очень щедр в том, какие
запросы можно отправлять: как GET, так и POST-запросы принимаются, а
параметры могут передаваться в виде полезной нагрузки JSON или формы
или даже в самой строке запроса. Ниже (рисунок 12) представлены
несколько способов вызова метода setWebhook:
Рисунок 12 – Способы вызова метода setWebhook
В конечных точках API, приведенных выше, 123456: ABC-
DEF1234ghIkl-zyx57W2v1u123ew11 является бот-токеном,
соответствующим боту, на который вызываются методы. Токен –
35
индивидуальный идентификатор, который привязывается к боту, он
уникален среди всех ботов, созданных в Telegram. Без токена нет
возможности реализовать логику, которая будет выполняться в
конкретном боте. Выдается токен при первичной регистрации бота
(регистрация будет рассмотрена в 3 главе. После вызова метода будет
получен результат запроса (рисунок 13). [38]
Рисунок 13 – Результать запроса
Результат всегда содержит поле ok, которое информирует о том,
удалось ли выполнить запрос. В этом случае запрос выполнен успешно.
Также может быть поле описания, которое содержит удобочитаемое для
человека описание результата, особенно если запрос не выполнен.
Если установлен веб-хост, есть еще один способ вызова методов.
После того, как API-интерфейс бота выполнит HTTP-запрос на webhook,
есть возможность ответить на запрос с именем метода и параметрами в
теле ответа. Например, чтобы ответить на сообщение после получения
обновления (рисунок 14). [38]
Рисунок 14 – Пример ответа на сообщение после получения обновления
36
В этом примере, включив поле метода в наш ответ, API-интерфейс
бота интерпретирует его как вызов метода, используя остальные поля в
качестве параметров. Главный недостаток заключается в том, что нет
возможности узнать результат своего вызова метода: API-интерфейс бота
не может ответить на ответ и не отправляет обновления для результатов
вызова метода. [38]
2.1.6. Краткие выводы
Таким образом, проанализируя возможности и функции Telegram
Bot, можно сделать вывод, что Telegram Bot имеет возможность выполнить
практически все возможные требования от чат-ботов, начиная от обычного
общения с ботом, заканчивая играми встроенными в бота. Функционал
полностью соответсвует поставленной задаче по созданию сервиса для
прохождения тестов.
2.2. Программное обеспечение
2.2.1. Интегрированная среда разработки
Для реализации проекта по созданию бота для прохождения теста
выбрана среда разработки (IDE) Microsoft Visual Studio, а язык
программирования – C#, т.к. разработчики Telegram позаботились
созданием необходимой библиотеки по созданию пота в C#. [13]
Интегрированная среда разработки (IDE) - это приложение, которое
облегчает разработку приложений. В целом, IDE представляет собой
графический интерфейс пользователя (GUI), предназначенный для помощи
разработчику в создании программных приложений со встроенной средой
в сочетании со всеми необходимыми инструментами. [19]
Наиболее распространенные функции, такие как отладка, контроль
версий и просмотр структуры данных, помогают разработчику быстро
выполнять действия без переключения на другие приложения. Таким
образом, среда помогает максимизировать производительность,
37
предоставляя аналогичные пользовательские интерфейсы (UI) для
связанных компонентов и сокращая время, затраченное на изучение языка.
IDE поддерживает один или несколько языков. [20]
2.2.2. Достоинства Microsoft Visual Studio
IntelliSense. Visual Studio IntelliSense делает кодирование быстрее,
предлагая контекстные предложения при вводе (рисунок 15) и уменьшает
шанс создания опечаток. Например, при вводе символов IntelliSense будет
отображать список участников (переменные, методы и т.д.), Которые
будут отфильтрованы таким образом, чтобы включать только те, которые
содержат ваши типизированные символы. Можно использовать клавиши
со стрелками, чтобы выбрать одно из предложений. Нажатие «Tab»
вставляет выбранный элемент. [32]
Рисунок 15 – Контестные предложения при вводе
Обнаружение ошибок в коде. Потенциальные ошибки в коде
автоматически подчеркиваются волнистой красной линией (рисунок 16).
Наведение курсора на кривую дает информацию об ошибке. Рядом с
ошибками может появиться специальня лампа может, которая предлагает
применить выстрые исправления автоматически. Быстрое обнаружение
ошибок ускоряет процесс их устранения, код становится качественнее, а
разработчик более опытным, т.к. сразу видно где допущена ошибка. [33]
38
Рисунок 16 – Подчеркивание ошибки
Так же все допущенные ошибки можно посмотреть в списке ошибок
(Error List) (рисунок 17).
Рисунок 17 – Список ошибок
Форматирование кода. Visual Studio дает возможность для
автоматического форматирования кода, чтобы код был написан
последовательно. Для автоматического форматирования необходимо
использовать последовательно комбинации горячих клавиш Ctrl + K, затем
Ctrl + D для форматирования всего активного документа и Ctrl + K, затем
Ctrl + F для форматирования выбранного текста. [32]
Переименование. Иногда появляется необходимость переименовать
переменную, метод и т.д., и для того, чтобы не упустить где-либо
переимнование, существует автоматическое переименование, которое
отследит по всему проекту использование переменной. Для
автоматического переименования необходимо нажать на нужную
переменную правой кнопкой мыши и выбрать “Rename” (рисунок 18). В
версиях, где установлен ReSharper, достаточно на выделенной переменной
нажать F2. [32]
39
Рисунок 18 – Переименование переменной
Команды перехода. Команды перехода (рисунок 19) в Visual Studio
выполняют целенаправленный поиск в коде для быстрого поиска
определенных типов, переменных или символов в коде. Также можно
использовать его для перехода к определенным файлам или строкам кода.
Чтобы начать использовать команды Go To, необходимо использовать
пункт меню Edit Go To Go To All или сочетание клавиш Ctrl + T.
Данная возможность очень полезна при переходе непосредственно к
какому-либо методу, а не прокручивании сотен строк кода мышью. [32]
Рисунок 19 – Команды перехода
По умолчанию Go To отобразит любой элемент вашего запроса,
соответствующий вашему поисковому запросу. Также можно
отфильтровать поиск кода по конкретным типам элементов,
предварительно задав свой поисковый запрос определенными символами
или выбрав один из значков (рисунок 20) над полем поиска. [32]
40
Рисунок 20 – Специальные символы и значки для задания поиска
Также можно выбрать один из двух значков документов над панелью
поиска, чтобы отфильтровать поиск в Visual Studio (рисунок 21).
Рисунок 21 – Выбор места поиска
Переход к описанию. Команда Go To Definition переводит в строку
кода, где выбран выделенный элемент, была возможность видеть больше
контекста об элементе. Чтобы использовать эту функцию, необходимо
нажать правой кнопкой мыши по элементу и выбрать «Go To Definition»
41
или нажать кнопку «Ctrl» и щелнуть по элементу. Также можно
использовать клавишу F12 (рисунок 22). [32]
Рисунок 22 – Переход к описанию элемента
Поиск по использованию в проекте. Команда «Find All References»
показывает, где используется выбранный элемент. Чтобы использовать эту
функцию, необходимо щелкнуть правой кнопкой мыши по элементу и
нажать «Find All References». Также можно использовать сочетание
клавиш Shift + F12. В результате будет получен древовидный список всех
мест где используется интересуемый элемент (рисунок 23).
Рисунок 23 – Поиск мест использования интересующего элемента
Отладка (Debugger). Отладчик Visual Studio может помочь найти
проблемы в коде более эффективно, чем это может сделать сам
разработчик. Отладчик позволяет запускать программу и

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран