Що таке бот у 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. Бот пише до чату команди, коли впав білд на 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 для повного контролю, або підключіть бота до віджету чату на сайті.