В этой статье я покажу, как создать Echo Bot с помощью Corvid by Wix. Это быстро, просто и абсолютно БЕСПЛАТНО.

Большинство приложений для обмена сообщениями имеют возможность писать ботов, и работают они примерно одинаково. Таким образом, я привожу пример только для Telegram Messenger, но вы уловили идею.

Давайте создадим простого бота, который будет отвечать тем же сообщением, что и он. Назовем его EchoBot.

Вот как выглядит поток, который нам нужно реализовать:

  1. Пользователь отправляет сообщение EchoBot
  2. Сервер принимает это сообщение и выполняет всю необходимую логику
  3. Сервер реагирует на действие пользователя, отправляя сообщение, используя 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 для хранения данных для вашего бота. Просто создайте коллекцию, и все готово.
Также вы можете создать страницу администратора с пользовательским интерфейсом, просто используя редактор перетаскивания, чтобы просмотреть некоторую статистику или около того.