2017-06-20 2 views
1

Je suis actuellement étudiante à l'université et j'utilise Moodle tous les jours. Je voudrais accéder à certaines informations qui me sont disponibles (par exemple, informations sur les classes que je prends, quelles affectations sont dues et quand, etc.)Obtenir des informations de l'API Moodle en tant qu'étudiant

J'ai fait quelques recherches concernant l'API de Moodle mais tout semblait orienté vers l'utilisateur de pouvoir qui dirige réellement Moodle (mon université).

Y at-il un moyen facile pour moi en tant qu'étudiant d'obtenir l'information?

Mon application utilise Node.js

+0

S'il n'y a pas api étudiant vous devez essayer quelque chose comme parse html et ... –

Répondre

1

Si votre université a activé les services Web pour l'application mobile, vous pouvez générer votre propre jeton API et appeler les services Web utilisés par l'application mobile. Si ces derniers ne sont pas activés, vous devez contacter votre administrateur pour accéder aux services Web.

Démo en utilisant moodle.org

Tout d'abord, obtenir un jeton d'API (remplacez $PASSWORD votre mot de passe):

$ curl -d username="fmcorz" -d password="$PASSWORD" 'https://moodle.org/login/token.php?service=moodle_mobile_app' 
{ 
    "token":"SNIPTOKEN", 
    "privatetoken":"SNIPPRIVATE" 
} 

Ensuite, nous avons besoin de votre userid, il sera utilisé dans d'autres appel de services Web. Vous pouvez obtenir votre userid en appelant le service Web core_webservice_get_site_info. Assurez-vous de remplacer $TOKEN par le jeton que vous avez obtenu ci-dessus.

$ curl -d wstoken="$TOKEN" -d wsfunction=core_webservice_get_site_info 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool | grep userid 
"userid": 1451616, 

Maintenant que vous avez votre userid, nous pouvons demander aux cours que vous êtes inscrit dans

$ curl -d wstoken="$TOKEN" -d wsfunction=core_enrol_get_users_courses -d userid=1451616 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool 
[ 
    { 
     ...snip... 
     "fullname": "Moodle in English", 
     "id": 5, 
     ...snip... 
    }, 
    { 
     ...snip... 
     "fullname": "Moodle en fran\u00e7ais", 
     "id": 20, 
     ...snip... 
    }, 
    { 
     ...snip... 
     "fullname": "Moodle Certification", 
     "id": 48, 
     ...snip... 
    } 
] 

Recap »

Pré-requis:.

  • Le Mobile App webservices doivent être activés
  • Le protocole REST doit être activé
  • Vous avez besoin d'un jeton API

Interrogation:

  • Les demandes sont faites à YOURHOST/webservice/rest/server.php?moodlewsrestformat=json.
  • Les demandes doivent être POST demandes
  • Les demandes doivent contenir wstoken: Votre jeton
  • Les demandes doivent contenir wsfunction: La fonction que vous appelez
  • Les demandes type doit être: application/x-www-form-urlencoded

Plus

J'ai grandement simplifié comment cela fonctionne et quoi Il existe des alternatives, mais cela devrait vous aider à démarrer. Vous serez probablement intéressé à examiner la documentation développeur pour obtenir plus d'informations sur les services Web disponibles: