Легкий PHP-класс для интеграции платформы max.ru с CMS MODX Revolution. Предназначен для быстрой организации рассылок, уведомлений и создания чат-ботов внутри вашей экосистемы MODX.
- Простая инициализация: Интеграция с объектом
$modx. - Управление подписками: Методы для регистрации, проверки и удаления Webhook-адресов.
- Гибкая отправка сообщений: Поддержка HTML-разметки и вложений (кнопок) через API.
- Обработка входящих данных: Готовый метод для приема Webhooks с автоматическим логированием для отладки.
- PHP 7.4 или выше.
- Установленная CMS MODX Revolution.
- Расширение cURL для PHP.
Подключите файл класса и инициализируйте его, передав необходимые параметры:
require_once MODX_CORE_PATH . 'components/mybot/maxBotModx.class.php';
$config = [
'name' => 'MyCompanyBot',
'token' => 'ВАШ_API_TOKEN',
'url' => 'https://site.ru' // URL вашего сниппета-обработчика
];
$maxBot = new maxBotModx($modx, $config['name'], $config['token'], $config['url']);$result = $maxBot->subscribe();
if ($result['status'] == 200) {
echo "Webhook успешно активирован!";
} else {
echo "Ошибка регистрации: " . $result['data']['error'];
}$activeSubscriptions = $maxBot->getSubscriptions();$data = $maxBot->handleWebhook();
if ($data && isset($data['user_id'])) {
$userId = $data['user_id'];
$text = $data['text'];
// Простая логика автоответчика
if ($text == '/start') {
$maxBot->sendMessage($userId, "Привет! Я бот на базе <b>MODX</b>. Чем могу помочь?");
}
}$maxBot->sendMessage(12345, "Заказ №<b>555</b> успешно <u>оплачен</u>!");$buttons = [
[
'type' => 'link',
'text' => 'Открыть каталог',
'url' => 'https://mysite.ru'
],
[
'type' => 'callback',
'text' => 'Статус заказа',
'payload' => 'check_status_123'
]
];
$maxBot->sendMessage(12345, "Выберите действие:", $buttons);// Инициализация
$bot = new maxBotModx($modx, 'MyBot', 'TOKEN', 'https://site.ru');
// Получаем данные из входящего запроса
$handleWebhook = $bot->handleWebhook();
// Проверяем, что пришло именно сообщение
if (!empty($handleWebhook['message'])) {
$message = $handleWebhook['message'];
$userId = $message['user_id'];
$text = $message['text'];
// Простая проверка команд
if ($text == '/start') {
$bot->sendMessage($userId, "Привет! Я получил твой <b>/start</b>");
} else {
// Ответ на любое другое сообщение
$bot->sendMessage($userId, "Вы написали: <i>" . $text . "</i>");
}
}Вы можете создать один файл-контроллер для всех задач:
- Регистрация: Просто перейдите по адресу
ваш-сайт.ру/test_connector.php?subscribe=1. - Webhook: Укажите этот URL в настройках платформы (или в
bot_subscribe_url). - Уведомления: Отправляйте системные сообщения, обращаясь к файлу:
test_connector.php?cmd=send&msg=Новый заказ!.
Важно: Для работы примера создайте в MODX системную настройки
max_bot_admins,max_bot_name,max_bot_token,bot_subscribe_urlс пустым массивом[].