В этой статье я покажу, как вы можете создать 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 .