Consultar usuário no Moodle via webservice com PHP

Consultar usuário no Moodle via webservice com PHP

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

Este post mostra como recuperar informações cadastrais de um usuário, efetuando busca pelo campo username. Pode também usar outros campos para filtro como idnumber ou fazer filtro pela combinação de vários campos. 

No processo de integração do sistema, você pode recuperar id e outras informações de usuário no Moodle, pelo CPF ou e-mail. Ou seja, usando um campo de sincronização entre sistema externo e Moodle. 

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

Segue código do cliente PHP para recuperar informações de usuário pelo campo username.  

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

  //parametros a ser passado ao webservice
  $param=array();
  $param['wstoken']="xxxxxxxx"; //token de acesso ao webservice
  $param['wsfunction']="core_user_get_users";
  
  //filtro de usuário
  $param['criteria'][0]['key']='username';
  $param['criteria'][0]['value']='xxxx';
  
	//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);