В этой статье я покажу, как создать Echo Bot с помощью Corvid by Wix. Это быстро, просто и абсолютно БЕСПЛАТНО.
Большинство приложений для обмена сообщениями имеют возможность писать ботов, и работают они примерно одинаково. Таким образом, я привожу пример только для Telegram Messenger, но вы уловили идею.
Давайте создадим простого бота, который будет отвечать тем же сообщением, что и он. Назовем его EchoBot.
Вот как выглядит поток, который нам нужно реализовать:
- Пользователь отправляет сообщение EchoBot
- Сервер принимает это сообщение и выполняет всю необходимую логику
- Сервер реагирует на действие пользователя, отправляя сообщение, используя Telegram API.
Прежде чем мы углубимся в эти шаги, вам необходимо создать своего телеграмм-бота. Для создания ботов Telegram предлагает BotFather, поэтому следуйте его инструкциям и получите собственный токен бота.
Также вам понадобится сервер. Мы будем использовать сайт Wix с Corvid, потому что это просто и бесплатно. Перейдите создайте сайт Wix и включите Corvid (выполните шаги 1 и 2 в статье).
Шаг 1
Чтобы реализовать шаг 1 в нашем потоке, нам нужно установить соединение между ботом и сайтом Wix (серверная часть). Для этого воспользуемся HTTP-функциями.
Чтобы добавить HTTP-функцию, добавьте файл с именем http-functions.js в раздел Backend вашего сайт. В этом файле вы можете найти пример функции, очистить этот файл и написать функцию:
import { ok, notFound, serverError } from 'wix-http-functions'; export async function post_updatesLisner(request) { const update = await request.body.json(); console.log(update); return ok(); }
После публикации сайта ваша конечная точка будет доступна по адресу:
https: // {user_name} .wixsite.com / {site_name} / _functions / updatesLisner
или (для сайтов премиум-класса):
https : // www. {user_domain} / _functions / updatesLisner
Затем вам нужно установить эту конечную точку как веб-перехватчик для вашего бота. Для этого вам нужно сделать HTTP-запрос GET (вы можете сделать это из браузера):
https://api.telegram.org/bot******************************************************************************************************
Вы должны получить такой ответ:
{ "ok": true, "result": true, "description": "Webhook was set" }
После этого шаг 1 готов!
Для проверки работоспособности откройте мониторинг сайта и отправьте сообщение своему боту. В нашей функции мы регистрируем каждое обновление, поэтому вы должны увидеть журналы:
Шаг 2
Чтобы упростить этот пример, логика нашего бота довольно проста: создание echo.
Давайте извлечем текст сообщения из update.
Согласно Обновить спецификации объекта:
const text = update.message.text;
Итак, у нас есть текст, который нужно отправить обратно в чат.
Шаг 3
Теперь нам нужно ответить пользователю отправив сообщение.
Создайте эту функцию в backend / http-functions.js:
import { fetch } from 'wix-fetch'; const BOT_TOKEN = '<your_bot_token>'; async function sendMessage(chatId, text, token) { const httpResponse = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, { 'method': 'post', 'headers': { 'Content-type': 'application/json' }, 'body': JSON.stringify({ 'chat_id': chatId, 'text': text }) }); if (httpResponse.ok) { return httpResponse.json(); } return false; }
Эта функция просто выполняет POST-запрос с двумя параметрами в теле:
1. text
2. chat_id
Текст, который мы уже получили на Шаге 2, chat_id, мы также можем получить из объекта обновления:
const chatId = update.message.chat.id;
Давайте завершим нашу функцию конечной точки отправкой сообщения. Конец, наконец, наш код выглядит так:
import { ok, notFound, serverError } from 'wix-http-functions'; import { fetch } from 'wix-fetch'; const BOT_TOKEN = '<your_bot_token>'; export async function post_updatesLisner(request) { const update = await request.body.json(); const chatId = update.message.chat.id; const text = update.message.text; const result = await sendMessage(chatId, text, BOT_TOKEN); if (result) { return ok({ body: 'success!' }) } return notFound(); } async function sendMessage(chatId, text, token) { const httpResponse = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, { 'method': 'post', 'headers': { 'Content-type': 'application/json' }, 'body': JSON.stringify({ 'chat_id': chatId, 'text': text }) }); if (httpResponse.ok) { return httpResponse.json(); } return false; }
Наконец, опубликуйте свой сайт и отправьте сообщение своему боту!
Примечание: в случае создания ботов Corvid от Wix это очень масштабируемое решение.
Вы можете использовать Wix Data для хранения данных для вашего бота. Просто создайте коллекцию, и все готово.
Также вы можете создать страницу администратора с пользовательским интерфейсом, просто используя редактор перетаскивания, чтобы просмотреть некоторую статистику или около того.