В этой статье я покажу, как вы можете создать Echo Bot, используя Corvid от Wix . Это быстро, просто и абсолютно БЕСПЛАТНО.
Большинство современных приложений для обмена сообщениями имеют возможность писать ботов, и они работают довольно схожим образом. Итак, в этом посте я покажу вам пример только для Telegram Messenger. Вы получите представление о том, как это может работать с другими мессенджерами.
Давайте создадим простого бота, который ответит тем же сообщением, которое получит. Давайте назовем это EchoBot.
Вот как выглядит поток, который нам нужно реализовать:
- Пользователь отправляет сообщение в EchoBot.
- Сервер принимает это сообщение и создает всю необходимую логику.
- Сервер отвечает на действия пользователя, отправляя сообщение с помощью Telegram API.
Прежде чем мы углубимся в эти шаги, вам нужно создать своего бота Telegram . Для создания ботов Telegram предлагает BotFather , поэтому следуйте инструкциям и получите свой собственный токен для бота.
Также вам нужен сервер. Мы будем использовать сайт Wix с Corvid, потому что это просто и бесплатно. Перейдите к созданию сайта Wix и включите Corvid (выполните шаги один и два в статье).
Вам также может понравиться:
Государственное управление в Corvid .
Шаг 1
Чтобы реализовать первый шаг в нашем потоке, нам нужно создать соединение между ботом Telegram и вашим сайтом Wix (внутренняя сторона). Для этого будем использовать HTTP-функции . Чтобы создать функцию HTTP, добавьте файл с именем http-functions.js в бэкэнд вашего сайта. В этом файле вы можете найти пример функции. Очистите этот файл и напишите следующую функцию:
JavaScript
xxxxxxxxxx
1
import { ok, notFound, serverError } from 'wix-http-functions'; 
2
3
export async function post_updatesLisner(request) {    
4
  const update = await request.body.json();    
5
  console.log(update);    
6
  return ok();
7
}
После публикации сайта ваша конечная точка будет доступна по адресу:
https: // {user_name} .wixsite.com / {site_name} / _functions / updatesLisner
Или, для премиум сайтов, по адресу:
https:. // WWW {USER_DOMAIN} / _functions / updatesLisner
Далее вам нужно установить эту конечную точку как веб-крючок для вашего бота. Для этого вам нужно сделать HTTP-запрос GET. Вы можете сделать это из браузера:
https://api.telegram.org/bot <лексема> / setWebhook? URL = <endpoint_url>
Вы должны получить ответ, подобный этому:
 {  "ok": true,  "result": true,  "description": "Webhook was set" } 
После этого первый шаг сделан!
Чтобы проверить работоспособность, откройте мониторинг сайта и отправьте сообщение своему боту. В нашей функции мы регистрируем каждое обновление, поэтому вы должны видеть журналы:
Шаг 2
Упростить логику примера нашего бота довольно просто: сделать эхо. Давайте извлечем текст сообщения из обновления . Согласно спецификации объекта обновления :
 const text = update.message.text; 
Итак, у нас есть текст , который нам нужно отправить обратно в чат.
Шаг 3
Теперь нам нужно ответить пользователю sendMessage . Создайте эту функцию в backend / http-functions.js :
JavaScript
xxxxxxxxxx
1
import { fetch } from 'wix-fetch';
2
3
const BOT_TOKEN = '<your_bot_token>';
4
5
async function sendMessage(chatId, text, token) {
6
const httpResponse = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {
7
   'method': 'post',
8
   'headers': {
9
     'Content-type': 'application/json'
10
   },
11
   'body': JSON.stringify({
12
     'chat_id': chatId,
13
     'text': text
14
   })
15
 });
16
 if (httpResponse.ok) {
17
   return httpResponse.json();
18
 }
19
 return false;
20
}
Эта функция просто делает запрос POST с двумя параметрами в своем теле:
1 text.
2 chat_id..
У нас уже есть  textшаг второй. Мы можем получить  chat_idиз объекта обновления:
 const chatId = update.message.chat.id; 
Давайте завершим нашу функцию конечной точки с  sendMessage. Наконец, наш код будет выглядеть так:
JavaScript
xxxxxxxxxx
1
import { ok, notFound, serverError } from 'wix-http-functions';
2
import { fetch } from 'wix-fetch';
3
const BOT_TOKEN = '<your_bot_token>';
4
5
export async function post_updatesLisner(request) {
6
 const update = await request.body.json();
7
 const chatId = update.message.chat.id;
8
 const text = update.message.text;
9
 const result = await sendMessage(chatId, text, BOT_TOKEN);
10
 if (result) {
11
   return ok({
12
     body: 'success!'
13
   })
14
 }
15
 return notFound();
16
}
17
18
async function sendMessage(chatId, text, token) {
19
 const httpResponse = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {
20
   'method': 'post',
21
   'headers': {
22
     'Content-type': 'application/json'
23
   },
24
   'body': JSON.stringify({
25
     'chat_id': chatId,
26
     'text': text
27
   })
28
 });
29
 if (httpResponse.ok) {
30
   return httpResponse.json();
31
 }
32
 return false;
33
}
Наконец, опубликуйте свой сайт и отправьте сообщение своему боту!
Примечание : создание ботов с Corvid от Wix — очень масштабируемое решение. Вы можете использовать Wix Data для хранения данных для вашего бота. Просто создайте коллекцию, и вы готовы к работе.
Кроме того, вы можете создать страницу администратора с пользовательским интерфейсом, просто используя редактор перетаскивания для просмотра статистики или других элементов.
Дальнейшее чтение
- Создайте свой первый чатбот с SAP Conversational AI .
- Анатомия чатбота .
- Как разработать чатбота с нуля .
Этот пост изначально появился на Medium .