MMoodle.Expert
Все статьи
Разработка 8 мин чтения

Moodle Web Services API: как интегрировать Moodle с вашими системами

Практическое руководство по Moodle Web Services API: включение, токены, основные методы, примеры интеграции с сайтом, 1С и мобильными приложениями.

Практическое руководство по Moodle Web Services API: включение, токены, основные методы, примеры интеграции с сайтом, 1С и мобильными приложениями.

Зачем нужен Moodle API

Web Services API позволяет внешним системам взаимодействовать с Moodle программно: создавать пользователей, зачислять на курсы, получать оценки, создавать курсы. Без API каждое действие требует ручного входа в Moodle.

Включение Web Services в Moodle

  1. Администрирование → Расширенные возможности → включить «Веб-сервисы»
  2. Администрирование → Плагины → Веб-сервисы → Управление протоколами → включить REST
  3. Создать роль с нужными capabilities (moodle/user:create, enrol/manual:enrol и т.д.)
  4. Создать сервисный аккаунт, назначить роль, получить токен

Основные методы API

Управление пользователями

  • core_user_create_users — создание пользователей
  • core_user_get_users — поиск пользователей
  • core_user_update_users — обновление профилей

Зачисление

  • enrol_manual_enrol_users — зачислить пользователя на курс
  • enrol_manual_unenrol_users — отчислить

Оценки

  • gradereport_user_get_grade_items — получить оценки пользователя
  • core_grades_update_grades — выставить оценку

Пример: зачисление через PHP

$token = 'ваш_токен';
$url = 'https://moodle.example.ru/webservice/rest/server.php';

$params = [
  'wstoken' => $token,
  'wsfunction' => 'enrol_manual_enrol_users',
  'moodlewsrestformat' => 'json',
  'enrolments[0][roleid]' => 5, // студент
  'enrolments[0][userid]' => 123,
  'enrolments[0][courseid]' => 45,
];

$ch = curl_init($url . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch));

Интеграция с сайтом (Next.js, WordPress)

Типовая схема: пользователь оплачивает курс на сайте → backend вызывает Moodle API → создаёт аккаунт и зачисляет → отправляет email с данными для входа. Реализуется за 1–2 дня разработки.

Безопасность токенов

Токен = пароль. Храните только на сервере, никогда не в клиентском коде. Создавайте отдельные токены для разных систем — если одна скомпрометирована, отзываете только её токен. Ограничивайте токен только нужными методами API.

Разработаю интеграцию вашей системы с Moodle через API. Опишите задачу — оценю сроки и стоимость.

Нужна помощь с Moodle?

Опишите задачу — расскажу, как решить её конкретно в вашем случае. Свяжитесь — разберём вместе.