Матеріал підготовлений за підтримки Selectel
Після бурхливих обговорень в ІТ-пресі з приводу ефективності чат-ботів, вони зайняли свою нішу в екосистемі користувачів і компаній. Наприклад, часто проекти впроваджують ботів для оповіщення про будь-які події, а служби підтримки використовують їх для того, щоб швидко відповідати на запитання й відповіді клієнтів.
У цій інструкції ми розглянемо найбільш простий спосіб створити бота власними руками і пояснимо, як він працює.
Крок 1. Створюємо бота в Telegram
Крок 2. Створюємо канал в Telegram
Крок 3. Створення умови
Наступний етап - навчити бота відправляти новини з сайту в створений канал. Для цього скористаємося популярним сервісом для автоматизації IFTTT.
З його допомогою можна створювати інструкції для роботи бота. У нашому випадку вона виглядає так: кожен раз, коли в RSS-стрічці сайту з'являється новий запис, він повинен відправляти повідомлення в канал Telegram.
IFTTT розшифровується як If This Then That
Тепер переходимо до другого кроку - вибираємо дію, яка виконуватиметься при виявленні нового запису в RSS. Натискаємо на "That" і шукаємо Maker Webhook. "Make a web request" - за допомогою цього модуля можна відправляти запити до будь-яких сервісів. У нашому випадку - до боту в Telegram.
Body - поле для шаблону запроcа, який буде відправлятися в Telegram. У ньому вказуємо, в який канал потрібно відправити повідомлення і що в ньому має бути написано:
Якщо все налаштований належним чином, бот відправить повідомлення з RSS-стрічки в канал. У тригера в IFTTT є затримка, тому повідомлення, що з'явилося в RSS-стрічці, відправиться в Telegram не відразу, а через 30-60 хвилин.
Як умова для відправки повідомлення можна вибрати будь-який інший сценарій, доступний на IFTTT. Наприклад, Weather Underground вміє кожен день відправляти повідомлення з прогнозом погоди на завтра. Тригер Stocks можна налаштувати на відправку вартості акцій при закритті торгів.
Тепер вирішимо більш складну задачу - навчимо створеного бота відповідати на повідомлення користувачів. Наприклад, надсилати по команді прайс-лист, контакти або відповідати на запитання й відповіді клієнтів.
Крок 4. Підключаємо сервер
На цьому етапі знадобиться веб-хостинг і сертифікат SSL, який можна отримати безкоштовно за допомогою сервісу Let's Encrypt.
Найзручніше створити окремий піддомен для бота - наприклад, bot.example.com - і розмістити на ньому один файл index.php. Всередині файлу розміщуємо код найпростішого бота c сайту Telegram.
Якщо у вас хостинг Vscale. то можна створити для бота окремий сервер. Це робиться за допомогою одного кліка в панелі управління.
У код бота потрібно внести всього два зміни:
Крок 5. Зв'язуємо Telegram-бота і сервер
Тепер необхідно пов'язати Telegram і файл на сервері, щоб запити, надіслані боту в месенджері, обробляв наш скрипт.
Після введення пароля, друкуємо для нашого поддомена просту команду:
php -f /var/www/bot.example.com/index.php
Якщо все зроблено правильно, бот відразу відправить в Telegram повідомлення "Hello".
Крок 6. Налаштовуємо текст автовідповіді бота
Додамо різні сценарії для відповідей бота. Відкриваємо створений раніше файл index.php і знаходимо в ньому рядок:
- Hello і Hi - текст користувача, на який бот повинен відреагувати.
- Nice to meet you - відповідь бота на відправлене користувачем повідомленням.
Нижче в коді додаємо додаткові відповіді. Наприклад, щоб в залежності від відправленого слова, бот надсилав необхідну інформацію користувачеві (як в боті vc.ru для «ВКонтакте»):
Чи можемо вказати будь-яку кількість фраз і відповідей на них. Також можна змінити кнопки, доступні користувачеві під час роботи з ботом. Знаходимо рядок коду 'keyboard' => array (array ( 'Hello', 'Hi')) і замість Hello і Hi вказуємо «Ціни» і «Контакти».
Після збереження файлу зміни відразу набудуть чинності.