- APInita
- Возможности
- Сервисы
- Решения
- Рерайт статей с помощью ИИ и публикацией в Telegram
- Распознавание чеков и документов по фото с помощью APInita
- Генерация изображений с помощью ИИ и отправка в Телеграм
- Получение и передача файлов в Telegram по API
- Авторизация в Telegram-боте с использованием Google-таблицы в качестве базы данных
- Другие решения
- Начать бесплатно
- Вход
- Контакты
Создание мини чат-бота в Telegram
Предположим, что у нас магазин по продаже цветов. Мы хотим создать чат-бот, который будет отвечать на следующие вопросы клиентов:
- сколько стоят розы;
- где вы находитесь;
- другие вопросы, которые будут поступать оператору.
1. Создание входящего вебхука в APInita
Создадим новый сценарий в APInita, назовем его "Обработка сообщений из Telegram" (1) и добавим модуль Webhook (2):

Скопируем полученный URL (3):

2. Настройка Telegram
Для создания бота у Вас должно быть установлено приложение Телеграм (https://telegram.org) на мобильном и/или десктопном ПК. Вести настройку удобнее с ПК.
2.1. Находим BotFather
Открываем Telegram и в строке поиска (1) вводим "BotFather":

2.2. Создаем Телеграм-бот
В окне ввода (1) введите команду "/new_bot" (2) и нажмите Enter:

Далее в том же окне (1) введите название Вашего бота (3), например "Лучшие цветы!" или любое другое имя (позже его можно будет изменить). После ввода имени - введите название ссылки для бота (4): название должно быть на латинице и в конце указано Bot или _bot, например - FlowersApinitaBot. В дальнейшем Вы сможете отправлять данную ссылку своим клиентам в виде: http://t.me/FlowersApinitaBot
После ввода ссылки бот будет создан, скопируйте полученный токен (5), он понадобится позже.
2.3. Теперь нам нужно связать бот и входящий вебхук APInita. Для этого берем ссылку:
https://api.telegram.org/bot{bot_token}/setWebhook?url={webhook_url}- вместо "bot_token" вставляем токен, полученный на шаге 2.2. (5), а вместо "webhook_url" вставляем ссылку, полученную на шаге 1 (3), в итоге должно получиться примерно так:
https://api.telegram.org/bot12345:AevSe/setWebhook?url=https://wh.apinita.ru/28d2aa017d6e3f1163Полученную ссылку вставляем в браузерную строку и переходим по ней. В качестве корректного ответа увидим следующее:

3. Проверка работы связи бота и APInita
Возвращаемся в сценарий, созданный на шаге 1. Проверим корректность связи - включим сценарий (1):

Далее перейдем в наш созданный бот (2):

И нажмем кнопку "Start" в открывшемся окне:

Теперь вернемся в наш сценарий, созданный на шаге 1, и увидим, что справа от модуля появилась дата и время входящих данных, а также зеленый кружок (4):

Это означает, что данные успешно поступили в систему и с ними можно начинать работу. Нажмите на модуль (4), а затем на вкладку "Входящие" (5) - Вы увидите поступившие данные и пользователя, кто отправил сообщение:

4. Создание подключения
В APInita переходим в раздел "Подключения" и жмем "+", выбираем тип подключения "Custom", указываем название, например "Telegram Bot Flowers", указываем ключ "bot_id" (1), а значение берем из пункта 2.2. (5), сохраняем:

5. Создание сценария
В Телеграм можно использовать разные подходы для работы с ботом, создавать свое меню, команды, выводить кнопки. В данной инструкции мы ограничимся парсингом вхождений слов, отправленных пользователем, и выводом соответствующего ответа.
5.1. Первое условие
Выключаем сценарий и создаем первое условие - добавляем новый модуль IF (1):

Прописываем условие обработки текста (2):
{{
(
'стои' in s1.body.message.text or
'стоя' in s1.body.message.text or
'цен' in s1.body.message.text
) and
'роз' in s1.body.message.text
}}В данном условии мы берем все слова содержащие "стои" или "стоя" или "цен" и "роз". То есть предложение "сколько стоят розы?" пройдет условие, а предложение "сколько стоят ромашки" - нет.
5.2. Второе условие
Аналогичным образом создаем второе IF-условие для "где вы находитесь". Можно использовать разные слова или части слов, чтобы более точно идентифицировать вопрос и направить в выполнение правильного условия:

{{
'адрес' in s1.body.message.text or
'находитесь' in s1.body.message.text or
'нахождение' in s1.body.message.text or
'добраться' in s1.body.message.text
}}Вы можете потренироваться в составлении условий в разделе "Валидатор" в Вашем личном кабинете.
5.3. Третье условие
Чтобы сделать обработку третьего условия, нужно в нем собрать первое и второе, и добавить отрицание:
{{ not (
((
'стои' in s1.body.message.text or
'стоя' in s1.body.message.text or
'цен' in s1.body.message.text
) and
'роз' in s1.body.message.text
) or (
'адрес' in s1.body.message.text or
'находитесь' in s1.body.message.text or
'нахождение' in s1.body.message.text or
'добраться' in s1.body.message.text
)
) }}В итоге у Вас получится три условия - поставьте их в один ряд, перетянув каждый модуль за правый нижний угол:

Создавать множество условий, а тем более конструкций if/else может быть не совсем удобным через IF модули, поэтому вместо этого можно воспользоваться одним PHP-модулем и сформировать все условия в нем, об этом мы рассказываем в другой статье.
5.4. Отправка ответа
Для каждого из условий создаем HTTP-модуль:

Для примера рассмотрим вариант после IF "Отвечаем на вопрос о адресе". Вводим название (1), например "Отправляем адрес". В поле "URL запроса" (2) вставляем как есть:
https://api.telegram.org/bot{{ connection.body.bot_id }}/sendMessageМетод и тип данных (4): POST, application/json
Поля запроса:
chat_id: {{ s1.body.message.chat.id }}
parse_mode: HTML
disable_web_page_preview: true
text: Мы находимся по адресу: г. Москва, улица Прекрасная 100Указываем подключение (5), созданное на шаге 4. По результату всех настроек у Вас получится: 1 входящий вебхук, 3 условия и по 1 запросу на каждое из условий. Включите сценарий (6):

6. Тестируем
Открываем наш бот в Телеграм и проверяем работу:
