Что такое бот в GoMsg

Бот — это специальный аккаунт, которым управляет программа через HTTP API. У бота есть имя, аватар, токен (как у Telegram ботов). Любой пользователь может добавить бота в свой чат и начать с ним взаимодействовать через команды.

Шаг 1. Создайте бота в интерфейсе

Откройте GoMsg под своим аккаунтом. Перейдите в Business → Bots. Нажмите + или «Create bot».

Заполните:

  • Name — имя бота (например, ReminderBot)
  • Description — что бот делает
  • Avatar URL — аватар (опционально)
  • Visibilitypublic (все могут добавить) или private (только вы)

После создания вы получите Bot Token — длинную строку вида bot_a1b2c3d4e5f6.... Сохраните его в надёжном месте, он понадобится для всех API-вызовов.

Шаг 2. Добавьте бота в чат

Чтобы бот мог отвечать пользователю — его нужно добавить в чат. Создайте новый чат или откройте существующий, нажмите «Add member» → выберите вашего бота.

Бот появится в списке участников с пометкой BOT.

Шаг 3. Проверьте подключение

Простой запрос, чтобы убедиться что токен работает:

curl https://your-server.com/api/bots/<TOKEN>/me

В ответ получите JSON с информацией о боте:

{
  "id": "12345678-...",
  "name": "ReminderBot",
  "is_active": true,
  "owner_id": "ваш-user-id"
}

Шаг 4. Отправьте первое сообщение

Используйте метод sendMessage:

curl -X POST https://your-server.com/api/bots/<TOKEN>/sendMessage \
  -H "Content-Type: application/json" \
  -d '{"chat_id": "ID-ЧАТА", "content": "Привет от бота!"}'

В чате появится сообщение от бота. Поздравляем — вы только что отправили первое сообщение через Bot API!

Шаг 5. Настройте webhook

Чтобы бот реагировал на сообщения пользователей — нужен webhook. Это URL на вашем сервере, на который GoMsg будет слать входящие сообщения.

В интерфейсе бота (Business → Bots → ваш бот) укажите Webhook URL:

https://your-bot-server.com/webhook

Каждое сообщение из чата будет прилетать туда POST-запросом:

{
  "id": "msg-id",
  "chat_id": "chat-id",
  "sender_id": "user-id",
  "sender_username": "иван",
  "content": "/help",
  "message_type": "text"
}

Шаг 6. Команды бота

Зарегистрируйте команды в интерфейсе бота. Например: /help, /remind, /status. После этого команды появятся в автодополнении при вводе.

На стороне webhook-сервера обрабатывайте команду:

if (message.content.startsWith("/help")) {
  sendMessage({
    chat_id: message.chat_id,
    content: "Доступные команды:\n/help — помощь\n/remind — напоминание\n/status — статус"
  });
}

Пример бота на Node.js

Минимальный Express-сервер для эхо-бота:

const express = require("express");
const app = express();
app.use(express.json());

const TOKEN = "bot_a1b2c3...";
const SERVER = "https://your-gomsg-server.com";

app.post("/webhook", async (req, res) => {
  const msg = req.body;

  // Эхо: повторяем что написал пользователь
  await fetch(`${SERVER}/api/bots/${TOKEN}/sendMessage`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      chat_id: msg.chat_id,
      content: `Вы сказали: ${msg.content}`
    })
  });

  res.sendStatus(200);
});

app.listen(3000, () => console.log("Bot listening on :3000"));

Что умеют боты GoMsg

  • send_message — отправить текст, фото, голосовое
  • edit_message — отредактировать сообщение
  • delete_message — удалить
  • append_message — добавить к сообщению (для streaming)
  • reactions — ставить реакции
  • commands — собственные slash-команды
  • visibility — public или private
  • permissions — гранулярные права (read, send, edit)

Идеи для ботов

  • Напоминания. Пользователь пишет «напомни через час позвонить маме» — бот шлёт напоминание.
  • Модерация. Удаляет спам и маты в групповом чате.
  • Уведомления CI/CD. Bot шлёт в чат команды когда упал билд на GitLab.
  • Поддержка. Авто-ответчик для live chat на сайте.
  • Игры. Текстовые квесты, викторины, шахматы.
  • Переводчик. Любое сообщение → перевод на другой язык.

Частые вопросы

Сколько ботов можно создать?

Без ограничений. Каждый бот — отдельная сущность со своим токеном и владельцем.

Чем это отличается от Telegram Bot API?

Концепция та же — token + webhook + команды. Но в GoMsg боты живут внутри чатов с обычными пользователями, без отдельного интерфейса ботов. Можно self-hosted, без лимитов на сообщения.

Нужен ли публичный IP для webhook?

Да, для webhook. Альтернатива — long polling (если реализован) или тестовый webhook прямо в GoMsg (в разделе Bots → Test webhook).

Как тестировать локально?

Используйте ngrok: ngrok http 3000 — получите публичный HTTPS URL. Укажите его как webhook URL в настройках бота.

Что дальше

Бот создан. Если хотите расширить функциональность — разверните свой сервер GoMsg для полного контроля, или подключите бота к виджету чата на сайте.