Consultar status do aluno em todas as atividades de um curso do Moodle via webservice com PHP

Consultar status do aluno em todas as atividades de um curso do Moodle via webservice com PHP

por Lino Vaz Moniz -
Número de respostas: 0

Este post mostra código PHP para efetuar consulta do progresso do aluno as atividades de um curso   do Moodle. Isso será feito  via  webservice com linguagem PHP. 

Para usar este código, instale no Moodle o plugin restjonson, protocolo de comunicação json para webservice. 

O resultado do webservice traz informação de conclusão da atividade na coluna status. Segue a tabela de domínio dos valores dessa coluna:  0 - incomplete, 1 - complete, 2 - complete pass e  3 - complete fail

//url de acesso
  $remotemoodle="xxxxxxxxxx"; //MOODLE_URL - endereço do Moodle
  $url=$remotemoodle . '/webservice/restjson/server.php';

  //parametros a ser passado ao webservice
  $param=array();
  $param['wstoken']="xxxxxx"; //token de acesso ao webservice
  $param['wsfunction']="core_completion_get_activities_completion_status";
  
  //especificar usuário 
  $param['userid']=4; //especifique do usuário. Clique aqui e veja como recuperar id  do usuário. 
  $param['courseid']=67; //especifique id do curso
  
	//converter array para json
  $paramjson = json_encode($param);

  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, 0);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $paramjson);
  curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $result = curl_exec($ch);
  $result =json_decode($result);
  
  //imprimindo resultado
  print_r($result);