Скопируем полученный URL (3):
Для создания бота у Вас должно быть установлено приложение Телеграм (https://telegram.org) на мобильном и/или десктопном ПК. Вести настройку удобнее с ПК.
Открываем Telegram и в строке поиска (1) вводим "BotFather":
В окне ввода (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
Полученную ссылку вставляем в браузерную строку и переходим по ней. В качестве корректного ответа увидим следующее:
Возвращаемся в сценарий, созданный на шаге 1. Проверим корректность связи - включим сценарий (1):
Далее перейдем в наш созданный бот (2):
И нажмем кнопку "Start" в открывшемся окне:
Теперь вернемся в наш сценарий, созданный на шаге 1, и увидим, что справа от модуля появилась дата и время входящих данных, а также зеленый кружок (4):
Это означает, что данные успешно поступили в систему и с ними можно начинать работу. Нажмите на модуль (4), а затем на вкладку "Входящие" (5) - Вы увидите поступившие данные и пользователя, кто отправил сообщение:
В APInita переходим в раздел "Подключения" и жмем "+", выбираем тип подключения "Custom", указываем название, например "Telegram Bot Flowers", указываем ключ "bot_id" (1), а значение берем из пункта 2.2. (5), сохраняем:
В Телеграм можно использовать разные подходы для работы с ботом, создавать свое меню, команды, выводить кнопки. В данной инструкции мы ограничимся парсингом вхождений слов, отправленных пользователем, и выводом соответствующего ответа.
Выключаем сценарий и создаем первое условие - добавляем новый модуль 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
}}
В данном условии мы берем все слова содержащие "стои" или "стоя" или "цен" и "роз". То есть предложение "сколько стоят розы?" пройдет условие, а предложение "сколько стоят ромашки" - нет.
Аналогичным образом создаем второе IF-условие для "где вы находитесь". Можно использовать разные слова или части слов, чтобы более точно идентифицировать вопрос и направить в выполнение правильного условия:
{{
'адрес' in s1.body.message.text or
'находитесь' in s1.body.message.text or
'нахождение' in s1.body.message.text or
'добраться' in s1.body.message.text
}}
Вы можете потренироваться в составлении условий в разделе "Валидатор" в Вашем личном кабинете.
Чтобы сделать обработку третьего условия, нужно в нем собрать первое и второе, и добавить отрицание:
{{ 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-модулем и сформировать все условия в нем, об этом мы рассказываем в другой статье.
Для каждого из условий создаем 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):
Открываем наш бот в Телеграм и проверяем работу:
Оставить комментарий