Moodle API: Diferència entre les revisions

De Cacauet Wiki
Dreceres ràpides: navegació, cerca
(Es crea la pàgina amb «El CMS Moodle disposa d'una API per accedir a les seves funcions internes i afegir funcionalitat com, per exemple, crear cursos automàticament des d'un script...».)
 
Línia 1: Línia 1:
 +
 +
== Introducció ==
 
El [[CMS]] Moodle disposa d'una [[API]] per accedir a les seves funcions internes i afegir funcionalitat com, per exemple, crear cursos automàticament des d'un script.
 
El [[CMS]] Moodle disposa d'una [[API]] per accedir a les seves funcions internes i afegir funcionalitat com, per exemple, crear cursos automàticament des d'un script.
  
Línia 12: Línia 14:
 
  https://docs.moodle.org/dev/Creating_a_web_service_client
 
  https://docs.moodle.org/dev/Creating_a_web_service_client
  
Ai! però dona un error.
+
<br>
 +
 
 +
== Custom functions ==
 +
Això només cal si hem fet funcions personalitzades dins el moodle. Per la API estàndard no cal.
 +
 
 +
Típicament dóna un error.
 
  Can not find data record in database table external_functions.
 
  Can not find data record in database table external_functions.
  
Línia 21: Línia 28:
  
 
Un cop fet l'upgrade simulat, tindrem disponible la nova funció.
 
Un cop fet l'upgrade simulat, tindrem disponible la nova funció.
 +
 +
<br>
 +
 +
== PHP ==
 +
 +
<br>
 +
 +
 +
== Python ==
 +
 +
<br>

Revisió de 15:38, 3 maig 2017

Introducció

El CMS Moodle disposa d'una API per accedir a les seves funcions internes i afegir funcionalitat com, per exemple, crear cursos automàticament des d'un script.

La API és accessible de diferents maneres (SOAP, REST, etc.) de les quals ens interessa REST.

Per activar-la haurem de seguir les passes (són unes quantes) que s'indica dintre del mateix moodle, a la secció:

Site Administration -> Plugins -> Web Services -> Overview

Un cop hagueu creat un rol i usuari amb els permisos adequats per a la API, finalment podeu seguir les passes descrites a la web per accedir a la API:

  • Demanar token
  • Executar funció

Explicat aquí:

https://docs.moodle.org/dev/Creating_a_web_service_client


Custom functions

Això només cal si hem fet funcions personalitzades dins el moodle. Per la API estàndard no cal.

Típicament dóna un error.

Can not find data record in database table external_functions.

Es veu que passa quan creem una nova funció personalitzada a la API. Cal actualitzar unes taules, i això no passa automàticament.

Per forçar l'actualització de les funcions aquí suggereixen elevar la versió de version.php i així el moodle automàticament farà un upgrade.

http://stackoverflow.com/questions/38891022/moodle-custom-service-creation-issue

Un cop fet l'upgrade simulat, tindrem disponible la nova funció.


PHP



Python