Configuración del Servicio Web en Moodle
MoodleManagement se comunica con tu plataforma Moodle a través de su API REST. Para que esta comunicación funcione, es necesario configurar un servicio web en Moodle, asignarle las funciones que el plugin necesita y generar un token de acceso.
Esta guía te lleva paso a paso por todo el proceso. No requiere conocimientos técnicos avanzados, pero sí acceso como administrador a tu instalación de Moodle.
Requisitos previos
- Moodle 4.0 o superior (recomendado 4.5+)
- Acceso como administrador del sitio Moodle
- FacturaScripts 2025.6 o superior con el plugin MoodleManagement instalado
Paso 1: Habilitar los servicios web Los servicios web vienen deshabilitados por defecto en Moodle. Para activarlos:
- Acceda a Administración del sitio > General > Funciones avanzadas
- Marque la casilla "Habilitar servicios web" (enablewebservices)
- Guarde los cambios Sin este paso, Moodle rechazará cualquier llamada de la API.
Paso 2: Habilitar el protocolo REST MoodleManagement utiliza exclusivamente el protocolo REST para comunicarse con Moodle. Otros protocolos (SOAP, XML-RPC) no son necesarios.
- Acceda a Administración del sitio > Servidor > Servicios web > Gestionar protocolos
- Habilite el protocolo REST haciendo clic en el icono del ojo
- Los demás protocolos pueden dejarse deshabilitados
Paso 3: Crear un usuario de servicio Se recomienda crear un usuario exclusivo para la integración en lugar de usar una cuenta de administrador existente. Esto permite controlar los permisos de forma granular y auditar las acciones realizadas por el plugin.
- Acceda a Administración del sitio > Usuarios > Cuentas > Agregar un nuevo usuario
- Cree un usuario con los siguientes datos sugeridos:
- Nombre de usuario: ws_facturascripts
- Nombre: FacturaScripts
- Apellido: Integration
- Email: una dirección válida (puede ser una dirección de servicio)
- Contraseña: una contraseña segura (no se usará directamente, pero es obligatoria)
- Asigne el rol Manager a nivel de sistema:
- Acceda a Administración del sitio > Usuarios > Permisos > Asignar roles globales
- Seleccione el rol Manager
- Agregue el usuario ws_facturascripts El rol Manager es necesario porque el plugin necesita permisos amplios: crear/editar usuarios, gestionar matrículas, acceder a cursos y cohorts. Si prefiere un rol personalizado con permisos más restrictivos, consulte la sección "Funciones WS necesarias" más abajo para conocer los capabilities requeridos.
Paso 4: Crear el servicio web externo
- Acceda a Administración del sitio > Servidor > Servicios web > Servicios externos
- Haga clic en "Agregar"
- Configure los siguientes campos:
- Nombre: FacturaScripts Integration
- Nombre corto: facturascripts
- Habilitado: Sí
- Usuarios autorizados: Sí (recomendado, restringe el acceso solo a usuarios específicos)
- Guarde
- En la lista de servicios, haga clic en "Usuarios autorizados" junto al servicio recién creado
- Agregue el usuario ws_facturascripts
Paso 5: Agregar las funciones WS al servicio Este es el paso más importante. Cada función WS corresponde a una operación que el plugin puede realizar en Moodle. Si falta una función, la operación asociada fallará.
- En la lista de servicios externos, haga clic en "Funciones" junto a "FacturaScripts Integration"
- Agregue una a una las funciones de la siguiente lista:
2.1 CONEXIÓN E INFORMACIÓN DEL SITIO:
- core_webservice_get_site_info — Test de conexión e información del sitio. Obligatoria.
2.2 GESTIÓN DE USUARIOS:
- core_user_get_users — Buscar usuarios por criterios
- core_user_get_users_by_field — Obtener un usuario por campo específico (id, email, username)
- core_user_create_users — Crear nuevos usuarios en Moodle
- core_user_update_users — Actualizar datos de usuarios existentes
- core_user_delete_users — Eliminar usuarios
2.3 GESTIÓN DE COHORTS:
- core_cohort_get_cohorts — Obtener lista de cohorts
- core_cohort_search_cohorts — Buscar cohorts por nombre
- core_cohort_create_cohorts — Crear nuevas cohorts
- core_cohort_update_cohorts — Actualizar cohorts existentes
- core_cohort_delete_cohorts — Eliminar cohorts
- core_cohort_add_cohort_members — Agregar miembros a una cohort
- core_cohort_delete_cohort_members — Eliminar miembros de una cohort
- core_cohort_get_cohort_members — Obtener los miembros de una cohort
2.4 GESTIÓN DE CURSOS:
- core_course_get_courses — Obtener lista de cursos
- core_course_get_courses_by_field — Obtener un curso por campo (id, shortname)
- core_course_search_courses — Buscar cursos por texto
- core_course_create_courses — Crear nuevos cursos
- core_course_update_courses — Actualizar cursos existentes
- core_course_delete_courses — Eliminar cursos
- core_course_duplicate_course — Duplicar un curso completo
- core_course_get_contents — Obtener el contenido de un curso (secciones y actividades)
- core_course_get_categories — Obtener categorías de cursos
- core_course_create_categories — Crear categorías
- core_course_update_categories — Actualizar categorías
- core_course_delete_categories — Eliminar categorías
2.5 CONTENIDO DEL CURSO (actividades y secciones):
- core_course_get_course_module — Obtener detalle de un módulo/actividad por cmid
- core_course_get_course_module_by_instance — Obtener detalle de un módulo por tipo e instancia
- core_course_get_course_content_items — Obtener los tipos de actividad disponibles
- core_courseformat_update_course — Acciones del editor de curso: mostrar/ocultar, mover, duplicar, eliminar módulos y secciones, cambiar indentación y modo de grupo
- core_course_delete_modules — Eliminar módulos/actividades
2.5 MATRÍCULAS:
- enrol_manual_enrol_users — Matricular usuarios manualmente
- enrol_manual_unenrol_users — Desmatricular usuarios
- core_enrol_get_enrolled_users — Obtener los usuarios matriculados en un curso
- core_enrol_get_users_courses — Obtener los cursos en los que está matriculado un usuario
- core_enrol_get_course_enrolment_methods — Obtener los métodos de matrícula de un curso
- core_enrol_get_potential_users — Obtener usuarios potenciales para matricular
- core_enrol_search_users — Buscar usuarios candidatos para matrícula
- enrol_self_enrol_user — Auto-matricular un usuario
- enrol_self_get_instance_info — Obtener información de la instancia de auto-matrícula
- enrol_meta_add_instances — Crear meta-matrículas entre cursos
- enrol_meta_delete_instances — Eliminar meta-matrículas
2.6 ROLES:
- core_role_assign_roles — Asignar roles a usuarios
- core_role_unassign_roles — Desasignar roles de usuarios En total son 44 funciones. Puede agregarlas en cualquier orden.
Paso 6: Generar el token de acceso
- Acceda a Administración del sitio > Servidor > Servicios web > Gestionar tokens
- Haga clic en "Crear token"
- Seleccione el usuario: ws_facturascripts
- Seleccione el servicio: FacturaScripts Integration
- Opcionalmente puede restringir por IP para mayor seguridad
- Guarde y copie el token generado IMPORTANTE: El token es como una contraseña. Guárdelo en un lugar seguro y no lo comparta. Si sospecha que se ha comprometido, elimínelo y genere uno nuevo.
Solución de problemas comunes
- "No se puede conectar": Verifique que la URL del sitio Moodle es correcta y accesible desde el servidor donde está FacturaScripts. Incluya el protocolo (https://).
- "Token inválido": Asegúrese de que el token no tenga espacios en blanco al principio o al final. Verifique que no ha expirado.
- "Función no disponible": La función WS que intenta usar no está agregada al servicio. Revise el Paso 5.
- "Acceso denegado": El usuario de servicio no tiene los permisos necesarios. Verifique que tiene el rol Manager a nivel de sistema.