Moodle | Cap. 3 - Interacción con sandbox

Cuando trabajamos en cualquier proyecto, necesitamos de un entorno estable, en el que podamos realizar todo tipo de pruebas; por esta razón, al principio del curso aprendimos cómo instalar un proyecto Moodle en nuestro entorno local, utilizando Ddev, que es una solución basada en contenedores Docker.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

A pesar de que una instalación local, nos permite explorar el comportamiento interno de la plataforma, su estructura de archivos y el código fuente, es posible que en lugar de esto, sólo nos interese realizar pruebas de conexión e interacción desde otra plataforma como Drupal, Wordpress o cualquier solución de frontend como Angular o Vuejs, conectada mediante servicios web a Moodle.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Cuando realizamos pruebas de conexión con Moodle localmente, es posible que nos encontremos varios problemas relacionados con los certificados autofirmados, bloqueos de IP o de firewall, entre otros.

En estos casos, la mejor alternativa sería acceder a una instancia de moodle publicada en un servidor estable y que fuera accesible desde el navegador.

Con este propósito en mente, visitaremos la página oficial de Moodle y buscaremos en el menú el apartado con el nombre DEMO, donde encontraremos el acceso a Moodle Sandbox.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Si hacemos clic sobre el enlace, nos llevará a su página principal, con los datos de los principales roles y usuarios útiles en la mayoría de nuestras pruebas.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Uno de los requerimientos necesarios en la conexión con Moodle a través de servicios web, es conocer un token de acceso. 

Podremos recibir este valor desde nuestra consola, utilizando CURL, que nos permite interactuar sin interfaz gráfica; así que añadiremos los datos correspondientes con el usuario de la siguiente manera:

curl -d username=”NOMBRE-USUARIO" -d password="CLAVE" "https://sandbox.moodledemo.net/login/token.php?service=NOMBRE-SERVICIO"

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Para conocer el nombre del servicio que añadiremos en nuestra llamada, iniciaremos sesión con el usuario administrador y nos moveremos a la pestaña Server.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Luego nos desplazamos a la parte inferior de la pantalla, donde encontraremos el apartado relacionado con los servicios web, entonces daremos clic en el enlace External services, que nos permitirá comprobar los servicios disponibles.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Para nuestra prueba, nos hará falta saber el nombre corto del servicio, así que en el listado, daremos clic en EDITAR, ubicado junto al nombre del servicio que estamos consultando.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

 

En cuanto conocemos el nombre del servicio, podremos abrir nuestra consola y ejecutaremos la siguiente llamada que nos devolverá el token correspondiente al usuario.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Una vez obtenido el Token de conexión para el usuario de Moodle, el siguiente paso será ejecutar cualquier llamada que nos devolverá los datos correspondientes.

Moodle utiliza funciones preconfiguradas para consultar estos datos e interactuar con su API, encontraremos este listado haciendo clic en en enlace de la pantalla External services que visitamos hace un momento.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

Para realizar estas consultas desde nuestra consola, necesitaremos aplicar algunos cambios en la estructura de la llamada, como te muestro a continuación:

 curl  "https://sandbox.moodledemo.net/webservice/rest/server.php" -d wstoken="TU-TOKEN" -d wsfunction="core_course_get_categories" -d moodlewsrestformat="json"

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español

Si prefieres utilizar una herramienta con interfaz gráfica, tienes Postman, que podrás descargar de forma gratuita e instalarla en tu ordenador local.

 

www.cursodrupal.com | Formacion Drupal y Symfony en Español