Telegram бот на TypeScript для автоматического приветствия новых участников группы.
- Автоматическое приветствие новых участников группы
- Форматированные сообщения с Markdown
- Настраиваемые приветственные сообщения
- Подробное логирование событий
- Проверка статуса и прав бота
- Node.js (версия 14 или выше)
- yarn
- Telegram Bot Token (получается через @BotFather)
- ID группы Telegram, где будет работать бот
- Клонируйте репозиторий:
git clone https://github.com/PeresvetS/bot-doorman-tg
cd bot-doorman-tg
- Установите зависимости:
yarn install
- Создайте файл
.env
в корневой директории проекта:
BOT_TOKEN=your_telegram_bot_token
PORT=3000
NODE_ENV=development
TELEGRAM_GROUP_ID=-1001234567890
-
Создайте нового бота через @BotFather:
- Отправьте команду
/newbot
- Следуйте инструкциям для создания бота
- Сохраните полученный токен
- Отправьте команду
-
Настройте права бота:
- Перейдите к @BotFather
- Выберите команду
/mybots
- Выберите вашего бота
- Нажмите Bot Settings
- Выключите Group Privacy Mode (Turn off)
-
Получите ID группы:
- Добавьте бота в группу
- Отправьте любое сообщение в группу
- Перейдите по URL:
https://api.telegram.org/bot<YourBOTToken>/getUpdates
- Найдите в ответе
"chat":{"id": -1001234567890}
- это ID вашей группы - Добавьте полученный ID в файл
.env
-
Настройте права бота в группе:
- Добавьте бота в группу, если еще не добавили
- Сделайте бота администратором группы
- Убедитесь, что у бота есть права на чтение сообщений и отправку сообщений
Для запуска в режиме разработки:
yarn dev
Для production сборки и запуска:
yarn build
yarn start
- После запуска бот выведет информацию о своем статусе в консоль
- Откройте в браузере
http://localhost:3000/health
для проверки работы сервера - Откройте
http://localhost:3000/check-group
для проверки настроек группы - Добавьте нового участника в группу для проверки приветственного сообщения
Для изменения текста приветственного сообщения отредактируйте переменную welcomeMessage
в файле src/bot/index.ts
:
const welcomeMessage = `
*Добро пожаловать, ${newMember.first_name}\\!* 🎉
Ваш текст приветствия...
`;
Если бот не реагирует на новых участников:
- Проверьте логи при запуске бота
- Убедитесь, что ID группы указан верно
- Проверьте права бота в группе
- Проверьте, что Group Privacy Mode выключен
- Попробуйте удалить и заново добавить бота в группу
├── src/
│ ├── bot/
│ │ └── index.ts # Основная логика бота
│ ├── config/
│ │ └── index.ts # Конфигурация
│ └── index.ts # Точка входа
├── .env # Переменные окружения
├── package.json # Зависимости и скрипты
└── tsconfig.json # Настройки TypeScript
Бот ведет подробное логирование всех событий в консоль:
- Статус запуска
- Информация о группе
- Новые сообщения
- Новые участники
- Ошибки отправки сообщений
- Изменения статуса бота
Если вы хотите внести свой вклад в проект:
- Создайте форк репозитория
- Создайте ветку для ваших изменений
- Внесите изменения
- Отправьте pull request
MIT
Если у вас возникли проблемы или вопросы:
- Проверьте раздел "Устранение неполадок"
- Создайте Issue в репозитории
- Опишите проблему и шаги для её воспроизведения