Быстрый старт
Создайте бота и запустите echo-бота за несколько шагов.
Шаг 1. Создайте бота
- Откройте alphames.duckdns.org
- В поиске найдите @botmother
- Отправьте
/newbot - Введите отображаемое имя, например
My Helper - Введите username, например
myhelperbot(обязательно оканчивается наbot) - Сохраните токен — он показывается один раз
Шаг 2. Проверьте токен
curl -s https://alphames.duckdns.org/api/bot/getMe \
-H "Authorization: Bot YOUR_TOKEN_HERE"
Должен вернуться JSON с "ok": true и данными бота.
Шаг 3. Напишите боту
- Найдите своего бота в поиске:
@myhelperbot - Откройте личный чат и отправьте
/start
Сообщение попадёт в очередь updates — его заберёт ваш скрипт.
Шаг 4. Запустите скрипт
Минимальный бот на Node.js 18+:
// bot.js
const TOKEN = process.env.BOT_TOKEN;
const API = 'https://alphames.duckdns.org/api/bot';
const headers = {
Authorization: `Bot ${TOKEN}`,
'Content-Type': 'application/json',
};
let offset = 0;
async function api(path, options = {}) {
const res = await fetch(`${API}${path}`, { ...options, headers });
const data = await res.json();
if (!res.ok) throw new Error(data.error || res.statusText);
return data;
}
async function tick() {
const { result } = await api(`/getUpdates?offset=${offset}`);
for (const update of result) {
offset = update.update_id + 1;
if (update.type !== 'message') continue;
const { chatId, text, from } = update.message;
const reply = text === '/start'
? `Привет, ${from.displayName}! Я echo-бот.`
: `Вы написали: ${text}`;
await api('/sendMessage', {
method: 'POST',
body: JSON.stringify({ chat_id: chatId, text: reply }),
});
}
}
setInterval(() => tick().catch(console.error), 1000);
console.log('Bot running…');
# Windows PowerShell
$env:BOT_TOKEN="ваш_токен"
node bot.js
Шаг 5. Проверьте ответ
Напишите боту снова — он должен ответить. Если нет:
- Убедитесь, что скрипт запущен и нет ошибок в консоли
- Проверьте токен через
getMe - Убедитесь, что пишете именно в личный чат с ботом
Деплой бота
Бот — это обычный процесс, который должен работать 24/7:
- VPS / домашний сервер +
pm2 start bot.js - systemd service
- Docker контейнер
Храните токен в переменной окружения, не коммитьте в git.