northmule / telegram-antisapm-registrations-bot
Skeleton of the Laminas application with a module for combating spam registration in the Telegram group
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 2
Open Issues: 0
Type:project
Requires
- php: >=7.4
- ext-pdo: *
- doctrine/doctrine-orm-module: ^3.1
- doctrine/migrations: ^3.0
- doctrine/orm: ^2.7
- northmule/telegram-bot-anti-registration: ^1.1.0
- ramsey/uuid: ^4.1
- vlucas/phpdotenv: ^5.2
Requires (Dev)
- phpstan/phpstan: ^1.2
- phpstan/phpstan-doctrine: ^1.0
- slevomat/coding-standard: ^7.0
- squizlabs/php_codesniffer: ^3.6
README
Приложение использует элементы Laminas Framework, так же за основу скелета приложения взята структура Laminas Framework (Бывший Zend Framework)
Для чего этот бот применим
- Для борьбы с автоподпиской на группу
- Для блокирования всех тех кто не смог ответить на простой вопрос
- Автоматически блокирует ботов (без вопросов)
Что умеет БОТ
- Блокировать все действия пользователя после его вступления в группу
- Разблокировать все (не ограниченные глобально) действия пользователя после ответа на вопрос
- Удалить после удачного ответа за собой сообщение
- Поприветствовать пользователя
Запуск на своём домене
- Клонируйте репозитарий
- Настройте ваш сервер так что бы корнем сайта была папка public
- Переименуйте файл .env.dist в .env
- Настройте данные в .env
- Если всё верно - вы увидите страницу приветствия (базовый шаблон приложения)
Настройка
- В первую очередь создайте своего бота в Telegram
- После создания своего бота у вас будет (Токен и имя бота)
- Заполните все значения в файле .env
- Выполните миграцию таблиц Doctrina или выполните запрос на создание нужной таблицы в вашей MySQL
CREATE TABLE `coderun_bot_telegram_users_chat` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`userId` BIGINT(20) NULL DEFAULT NULL COMMENT 'ИД пользователя Телеграм',
`userName` VARCHAR(250) NULL DEFAULT NULL COMMENT 'логин пользователя' COLLATE 'utf8_unicode_ci',
`approved` TINYINT(1) NOT NULL COMMENT 'Можно писать в чат или нет',
`languageCode` VARCHAR(20) NULL DEFAULT NULL COMMENT 'Код языка' COLLATE 'utf8_unicode_ci',
`chatId` BIGINT(20) NOT NULL COMMENT 'ИД чата',
`chatName` VARCHAR(250) NULL DEFAULT NULL COMMENT 'Имя чата' COLLATE 'utf8_unicode_ci',
`dateCreated` DATETIME NULL DEFAULT NULL COMMENT 'Дата создания записи',
`dateUpdated` DATETIME NULL DEFAULT NULL COMMENT 'Дата обновления записи',
`uuid` VARCHAR(36) NULL DEFAULT NULL COMMENT 'Уникальный код, автогенерируется при вставке' COLLATE 'utf8_unicode_ci',
`dtype` VARCHAR(255) NOT NULL COLLATE 'utf8_unicode_ci',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `UNIQ_2F8DF3B6D17F50A6` (`uuid`) USING BTREE,
INDEX `user_in_chat_idx` (`userId`, `chatId`) USING BTREE
)
COMMENT='Пользователи чата'
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
AUTO_INCREMENT=2;
- Выполните запрос в браузере "https://Ваш_домен/telegram-bot/set-hook" (APP_MODULE_TELEGRAM_BOT_HOOK_URL - должен содержать https://ваш_домен в .env)
- Если результат положительный, установите в .env APP_MODULE_TELEGRAM_DISABLE_SET в значение 1
- Создайте Группу и добавьте туда вашего бота. Сделайте бота администратором группы
- Протестируйте результат
Примеры
- Пример развёрнутого приложения Здесь
- Бот которого можно добавить в свою группу и посмотреть как он работает @akismetBot
- Боту @akismetBot необходимы права администратора
Ещё....
- Ошибки записываются в лог в /data/logs
- Лог запросов от сервиса Телеграм записывается в лог в /data/logs
- Базовая информация о пользователях сохраняется в MySQL
- Есть несколько событий на которые можно подписаться
Дополнительная информация
Ссылки на документацию сторонних источников