Выбор темы для интернет-магазина на WordPress

Разработка #Плагины #Интернет-магазин #Веб-дизайн #Шаблоны #WordPress «WordPress для блога!» — говорили они. «Но ведь… есть плагины и темы…»...

Преимущества и недостатки WordPress

Разработка #Обзор #WordPress WordPress довольно старая система управления содержимым сайтов (сокращенно — CMS), вебмастера и администраторы с ней...

Что такое API

Разработка #Веб-дизайн #API #OpenSource #Безопасность Краткий ликбез по API. Выясняем, что он собой представляет, как работает и зачем нужен....

Google представил нейросеть Gemini 1.5 – за раз она может обработать 11-часовое аудио

Новости #Google #Боты #Нейросети #Обновления Реклама. ООО «ТаймВэб». erid: LjN8KZYK5 Два месяца назад компания Google анонсировала новую языковую модель Gemini,...

Чем занимается веб-разработчик и что нужно для того, чтобы им стать

Разработка #Карьера #JavaScript #HTML/CSS #PHP #Python Сегодня программирование востребовано как никогда. Информационные технологии развиваются с колоссальной скоростью, и...

Как пользоваться Visual Studio Code

Разработка #IDE #Редакторы кода #Программы #Обзор #Windows Visual Studio Code – это один из наиболее популярных редакторов кода,...

Что такое дополненная реальность

Разработка #Google #Продажи #Технологии #Сервисы Выбирали когда-нибудь кроссовки или диван в интернете? Не очень удобно, верно? Было бы...

Open source редактор Publii, первый взгляд

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

Максимальная производительность 1С-Битрикс: Настройка виртуальной машины

Системы управления контентом (CMS) стали неотъемлемой частью современных веб-проектов, предоставляя множество возможностей для разработки и управления сайтами. 1С-Битрикс —...

«Чистая» ОС, или Неведома зверушка. Ставим ClearOS

Разработка #FTP #Ubuntu #VPN #Firewall #Apache #Routing #Базы данных #Панель управления Как-то раз нужно было быстро запустить веб-сервер с...

Когда и зачем нужно проектирование сайта: основные этапы

Разработка #Веб-дизайн #Контент #Оптимизация Изучаем такой процесс, как проектирование сайта. Разбираем каждую стадию – от разработки базовых концепций...

Создаем свой шаблон для Joomla. Пошаговое руководство

Разработка #Шаблоны #HTML/CSS #Joomla! В этой статье пойдет речь о создании своего шаблона для Joomla 3.х с возможностью...

Лучшие хостинги серверов Minecraft

Мнение рынка #Хостинг #Игры #Подборка Реклама. ООО «ТаймВэб». erid: LjN8KWY7s Всегда хотели запустить собственный сервер игры, но не...

PHP: инструменты для тестирования, отладки, защиты и мониторинга

PHPUnit – инструмент для тестирования, похожий на JUnit (который используется для тестирования Java). Он дает возможность создавать собственные...

5 интересных трюков CSS

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

Лучшие сайты для изучения программирования

Разработка #Сервисы #Подборка #IDE #Карьера Рассказываем о лучших сайтах для изучения программирования.  Для удобства все ресурсы поделены на...

Что такое Sass

Разработка #Обзор #HTML/CSS Sass – это своего рода расширение, созданное для упрощения каскадных таблиц стилей (CSS). Все те, кто начинает...

Amazon UK: как создать и продвигать свой интернет-магазин?

В последние годы популярность интернет-шоппинга выросла в разы. Возможно, вы хотите стать частью этого мира и начать продавать...

Методология разработки Waterfall: как устроена каскадная модель

Разработка #Менеджмент #Разбор #Оптимизация Термином Waterfall (в переводе с английского «водопад») называют каскадную модель управления проектами, при которой происходит...

Drupal: полный обзор популярной CMS

Разработка #Обзор #Drupal #Оптимизация CMS Drupal существует уже более 17 лет – разработка платформы началась в 2000 году...

Как ускорить ответы клиентам с помощью чат-бота в VK. Пошаговая инструкция

Нередко бывает так, что в вашу группу во «Вконтакте» в один момент написали много пользователей с различными вопросами, а времени отвечать всем у вас не хватает. В этой ситуации пригодится бот для автоматических ответов с использованием inline-клавиатуры. В этой статье я расскажу и покажу, как написать его, на примере нескольких команд.

В отличие от конструкторов ботов, в такой скрипт можно интегрировать любой другой код и inline-клавиатуру и гибко настраивать ответы — без всяких ограничений. Также мы будем уверены в надежности и работоспособности бота, так как запустим скрипт у себя на сервере.

Пример того, что должно получиться:

Подготовка

Мы будем использовать:

  • язык программирования Node.js;
  • модуль vk-io;
  • редактор исходного кода Visual Studio Code;
  • виртуальный сервер (рекомендую брать в Timeweb, так как на их серверах самый низкий пинг к серверам «Вконтакте»).

Приступаем к настройке работы с API. Нам нужны только события сообщений, поэтому заходим в управление группой, далее в раздел «Работа с API» и выставляем разрешения во вкладке «Long Poll API» таким образом:

И получаем ключ доступа в первой вкладке.

Не забываем включить сообщения группы, возможности ботов и кнопку «Начать»:

 

Написание кода

1. В программе Visual Studio Code с помощью сочетания клавиш Ctrl+N создаем файл «index.js», открываем его и указываем вышеупомянутый модуль и ключ доступа группы:

const { VK, Keyboard } = require('vk-io'); 
const vk = new VK({ 
    token: "" // В кавычки вставляем ключ доступа группы
});

2. Вводим переменные с командами для бота, для примера я возьму эти команды:

var nachalo = 'начать', 
help = 'помощь', 
contacts = 'контакты', 
faq = 'частые вопросы' 
zakaz = 'сделать заказ';

3. Включаем функцию получения сообщений:

vk.updates.start(); 
vk.updates.on('message', (context, next) => {
    // Далее мы будем работать внутри этой функции!
})

4. Чтобы группа не отвечала на свои же сообщения, вписываем:

if(context.isGroup == true) return

5. Так как при первом входе в диалог с группой пользователь будет видеть только кнопку «Начать», нам нужно сразу сделать на нее ответ с кнопкой на inline-клавиатуре:

if (context.text.toLowerCase().includes(nachalo)) { 
    context.send({ 
        message: ('Добро пожаловать в бота группы!nНажмите на кнопку или отправьте сообщение со словом помощь для просмотра всех команд!'), 
        keyboard: Keyboard.builder() .textButton({ 
            label: 'Помощь', 
            payload: { 
                command: 'Помощь' 
            }, 
            color: 'negative' 
        }) 
        .inline() 
    }); 
}

6. Создаем ответ на вышеуказанную кнопку. Для примера я сделал следующие команды:

else if (context.text.toLowerCase().includes(help)) { 
    context.send({ 
        message: ('Все команды:'), 
        keyboard: Keyboard.builder().textButton({ 
            label: 'Контакты', 
            payload: { 
                command: 'Контакты' 
            }, 
            color: 'primary'
        }).inline().textButton({ 
            label: 'Частые вопросы', 
            payload: { 
                command: 'Частые вопросы' 
            }, 
            color: 'primary'
        }).inline().textButton({ 
            label: 'Сделать заказ', 
            payload: { 
                command: 'Сделать заказ' 
            }, 
            color: 'primary' 
        }).inline().urlButton({
            label: 'Сайт',
            url: 'https://timeweb.com/ru/' 
        }).inline()
    });
}

7. И расписываем все вышеперечисленные команды:

else if (context.text.toLowerCase().includes(contacts)) {  // Команда ‘Контакты’
    context.send({ 
        message: ('Почта: qwerty@qwerty.comnТелефон: +79000000000'), 
        keyboard: Keyboard.builder().textButton({ 
            label: 'Помощь', 
            payload: { 
                command: 'Помощь'
            },
            color: 'negative'
        }).inline()
    });
} 

else if (context.text.toLowerCase().includes(zakaz)) {  // Команда ‘Сделать заказ’
    context.send({ 
        message: ('Для оформления заказа нажмите на кнопку ниже и оставьте заявку с вашими контактными данными. С вами свяжется наш сотрудник!'), 
        keyboard: Keyboard.builder().textButton({ 
            label: 'Помощь', 
            payload: { 
                command: 'Помощь' 
            },
            color: 'negative' 
        }).inline().urlButton({ 
            label: 'Оставить заявку',
            url: 'https://timeweb.com/ru/'
        }).inline()
    }); 
}

else if (context.text.toLowerCase().includes(faq)) { // Команда ‘Частые вопросы
    context.send({ 
        message: ('1. Как сделать заказ? - Используйте нашего бота!n2. Где посмотреть информацию о покупке? - На нашем сайте qwerty123123.com !'), 
        keyboard: Keyboard.builder().textButton({ 
            label: 'Помощь', 
            payload: { 
                command: 'Помощь' 
            },
            color: 'negative' 
        }).inline() 
    });
}

8. Нажимаем кнопку «Сохранить».

9. Используя данные, которые мы получили при создании сервера, подключаемся к нему по протоколу SSH и устанавливаем Node.js. Если вы заказали VDS в Timeweb и указали в дополнительном софте Node.js, то устанавливать еще раз не нужно (этот шаг пропускаем).

10. Подключаемся к серверу по протоколу SFTP, создаем папку с именем «bot» и копируем в нее наш скрипт.

11. Подключаемся по SSH и прописываем в консоли:

cd bot
npm i vk-io

12. Чтобы скрипт работал в режиме 24/7, используем PM2 — диспетчер процессов для приложений и скриптов. Для этого прописываем в консоли:

npm install pm2 –g
pm2 start index.js

Наш бот работает и готов к ответам на сообщения.

Для добавления новых простых ответов для бота можно взять за основу код из пунктов 5-7, просто поменяв в нем текст ответа и кнопки. Удачи в ваших проектах!

Межтекстовые Отзывы
Посмотреть все комментарии
guest