No Image

Telegrambotapi: что это такое, как им пользоваться, пишем apibot

СОДЕРЖАНИЕ
0
12 просмотров
13 марта 2019

Что такое Telegrambotapi, как им пользоваться, как написать телеграмм бот

Телеграмм развивается также и благодаря ботам. Это небольшие офисные программы-роботы. Они помогают в работе, делая ее проще и быстрее. Создать бот может любой пользователь, который знаком с методами программирования на среднем уровне.

Содержание

Что такое API

Telegram API Bot представляет собой программный интерфейс, благодаря которому можно создать бота. В API входят команды и объекты, которые нужны для того, чтобы установить поведение бота. Применяя данный интерфейс, можно писать личные коды программы, что будут работать в качестве ботов при их запуске в Телеграмм.

Какой язык скриптов использует программа Телеграмм

В API Telegram можно использовать разные программные языки. Это С++, JavaScript, PHP и Python. Прежде чем приступить к программированию ботов, необходимо выучить один из этих языков. Больше о языках программирования в Телеграмм читайте ниже.

Что такое JSON и как он связан с Telegram API

Управление в Бот Telegram API выполняется теми объектами, которые указаны в JSON. Они имеют вид строки, которая задана согласно конкретным параметрам. Благодаря этому можно выполнять обмен данными с максимальной скоростью и с наименьшими затратами. В этом случае выполняется передача набора пар формата «ключ:значение», которые имеют текстовый вид. А передача кода не требуется. Существуют объекты API, значительная часть которых используется в процессе создания команда. Кроме них есть и набор методов, что дают возможность отправлять файлы, а также выполнять редактирование. Все команды есть на сайте программы в описании API.

Языки программирования

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

Так те, кто хорошо знает и любит JavaScript могут применять NodeTelegramBot API. В этом случае пригодится как знание языка, так и умение использовать этот фреймворк, который превращает клиентский язык в интерфейс сервера, обладающий полным функционалом. TelegramBot API представляет собой самый популярный сервис, который применяется с целью создания бота. Однако в случае блокировки он становится недоступным. Есть способ использования API Telegramorg в обход блокировки.

Например, для этого можно использовать VPN. Дело в том, что периодически появляются сообщения о возможной блокировке ApiTelegramorg. Также в API TelegramBot обход блокировки осуществляется и с использованием браузера tor. В любом случае, вариантовдостаточно, чтобы не бросать изучения данного метода. В TelegramBot API обход блокировки также возможен.

Еще один популярный язык, который используется в процессе написания ботов – это PHP. Он применяется в процессе разработки web-приложений на сервере. Этот язык простой, логичный и специализирован именно на веб-среду. Telegram API PHP – популярное направление. Далее поговорим о TelegramBot API Python.

Python имеет ряд отличий, основные особенности которых заключены в простоте его изучения. Telegram API Python является популярным, поскольку отличается значительной производительностью. С++ — это классика. Он совсем непростой, но это база для вышеперечисленных языков программирования, потому работать с Telegram API C тоже можно. Но начинающим лучше применять PythonTelegramBot API.

Пишем бота

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

Ниже мы выполним описание несложного метода создания бота с применением платформы API.AI. BotTelegram API бот будет показывать приветствие для пользователя и, кроме того, давать ответы, связанные с погодой. Вы можете реализовать практически все, что вам захочется, например, интерфейсы, связанные с автоматизированными продажами и поддержкой.

Шаг 1 – подготовка инфраструктуры

Итак, мы будем применять лишь сервисы Telegram бота и API.AI. Они являются бесплатными и все, что вам будет нужно – это сделать учетную запись в каждом из них.

Итак, вначале создаем бота. Для этого напишите @BotFather. Это тоже бот, но такой, который может создавать и выполнять настройку других ботов. Войдите в него. Вы сможете увидеть ряд команд, которые применяются в процессе создания нового робота. Вначале выбирайте команду /newbot, после чего последовательно вводите название, а также имя. В этом названии должно присутствовать окончание «bot». После получения идентификатора токен, у вас получится готовый робот. Через токен выполняется авторизация.

Теперь нужно сотворить агента API.AI. Это проект или контейнер и содержит в себе все настройки сущностей, а также контекстов и ответов.

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

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

Итак, вначале зарегистрируйтесь в API.AI. После этого переходите сюда: https://api.ai/. Нажмите “SIGN UP FOR FREE” и выберите аккаунт, нужный вам для авторизации.

Далее начинайте создавать сам агент. Вам следует нажать “Createagent”. Теперь нужно указать определенные данные.

Шаг 2 — настройка агента

Контекст указывает связь между текстом человека и действием агента. Давайте рассмотрим наш случай, который связан с погодой.

Вначале вам следует перейти в раздел «Контекст». Агент имеет «контексты», которые настроены на ошибки и на приветствие. Их мы оставляем без каких-либо изменений. «Контекст» может иметь любое имя. Важно, чтобы оно имело различимую форму. В «Репликах пользователя» укажите примеры тех вопросов, которые могут быть получены пользователем. Поскольку в данном случае речь о погоде, то вопрос привязывается к конкретному месту, в также ко времени. Это нужно уточнить. Важно указать в настройках как можно больше разных примеров. Благодаря этому агент сможет работать более точно. Ряд примеров указаны на скриншоте снизу.

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

После этого протестируйте вашу работу, для чего выполните проверку на несложных примерах. Наберите «Погода в Москве в четверг». В верхней части справа вы постоянно видите надпись “Tryitnow”. В этом поле и нужно написать ваш вопрос, связанный с погодой. После этого нажмите Ввод. Ответ в автоматическом режиме еще не был настроен, но ряд параметров уже определяются агентом. Как видно из раздела INTENT, агент считает, что человек заинтересован в погодных условиях. В PARAMETER отображается название города, а также конкретная дата.

Добавление ответов в автоматическом режиме

Теперь нужно сделать, чтобы агент был более разговорчивым. Пока мы не подключили источники из вне, ответом будут служить простые фразы. Для этого переходим в «Ответы» и вводим простые фразы. Эта процедура аналогичная той, которая выполнялась в процессе заполнения «Реплик пользователей».

В ответах вы можете применять ссылки на определенные сущности. Просто наберите $ и интерфейс предложит вам выбор конкретной переменной.

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

Шаг 3 — добавление внешнего сервиса

И вот, ваш агент уже распознает, когда пользователь пытается узнать погоду. Остается получить данные из определенного внешнего сервиса, а затем передать их агенту. В этом случае мы будем писать несколько скриптов, используя JS. Мы будем размещать их на облачном сервисе, а именно в GoogleCloudProject.

Создание стартового JS файла

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

После этого вам нужно создать файл index.js. В нем отобразите такое содержание:

GoogleCloudProject и его настройка

Теперь нужно выполнить настройки по указанной ссылке (1-5 пункты): https://cloud.google.com/functions/docs/quickstart
Разворачиваем функцию в облаке. Для этого вам следует выполнить в консоли:

Здесь itsm365Weather представляет собой название функции, а [BUCKET_NAME] – это имя хранилища разных данных вашего проекта. После того как операция будет завершена, вы сможете увидеть результат с адресом триггера.

Включение Webhook в API AI

Когда вы убедились, что вы находитесь в том агенте, который вам нужен, нажмите в меню слева на “Fulfillment”. После этого вам следует включить применение Webhook в верхней части монитора справа. Теперь введите адрес, который был получен на этапе ранее и сохраните все изменения.

Подключение новой функции в настройках контекста

Теперь переходите в настройки, связанные с «контекстом» прогноза погоды. Разворачиваем блок Fulfillment внизу страницы. Отмечаем “Использовать Webhook”. Теперь вам нужно сохранить настройки, а затем выполнить проверку полученного результата.

Настройка API в целях получения информации о погоде

Предлагаем применить сервис WWO. Здесь вам нужно получить API ключ. Для этого пройдите регистрацию.

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

Теперь вам нужно снова выполнить разворачивание функции в проекте.

Шаг 4 — настройка диалога

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

Сделать расположение обязательным параметром

Сделайте так, чтобы «расположение» было обязательным параметром. Далее откройте настройки контекста, связанные с прогнозом и укажите там такой параметр, как geo-city. Вам следует сделать так, чтобы он был обязательным для заполнения. После этого в колонке “Prompts” нужно настроить вопрос по ссылке. Все настройки сохраняем и проверяем, как агент ведет себя.

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

Создайте возвращаемое уточнение для расположения

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

Так, в настройках контекста, связанного с погодой, а именно в поле “Addoutputcontext” вам следует указать имя возвращаемого уточнения “location”. После этого обязательно сохраните все настройки.

Создайте новый контекст для уточнения

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

Теперь создайте новый контекст. Это можно сделать в разделе Intents. Также вы можете нажать на значок в строке Intents в меню слева.

Новый контекст может быть назван «Уточнение погоды» или как-то еще. Теперь установите уточнения в качестве “location”. Далее вам нужно добавить ответы пользователя. Это может быть, к примеру «Что на счет завтра». Теперь добавьте параметр сущности. Задействуйте такие значения:

Parameter Name: geo-city

Value: #location.geo-city

Далее нужно добавить ответ. Это мы сделаем в разделе “Response”:

После этого включите применение webhook. Это можно сделать в меню Fulfillment. Сохраняйте настройки, а затем выполните тестирование в консоли.

Шаг 5 — приветствие, а также обработка непредвиденных ситуаций

И вот, основная работа была нами проделана. Теперь робот должен поприветствовать пользователя и ответить на непредвиденные вопросы.

Настройка ответов для непредвиденных ситуаций

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

Настройка контекстов приветствия

Если вам нужно настроить приветствие, то это можно сделать таким же способом в контексте DefaultWelcomeIntent.

Шаг 6 — запуск бота

Подключение telegram бота к агенту

Вначале следует перейти в настройки “Интеграций”. Там нужно включить бота. Это можно сделать в “One-clickintegrations”.

Вам нужно скопировать токен в то поле, которое называется “Telegramtoken”. Этот токен был получен вами ранее в боте @botFather. После этого просто кликните на Старт.

Проверка работы бота

Теперь вам нужно перейти в бот и далее попробовать написать какое-то сообщение. Как видите, бот корректно отвечает на поставленный вопрос, связанный с погодой. Значит все было сделано правильно.

Пример использования

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


Полезное видео: Telegram Bot API 2 0 — что нового

Комментировать
0
12 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно