SlideShare uma empresa Scribd logo
Moodle API
Piercarlo Fermino Soares
Documentação
A documentação da api se encontra em:
(instalação do moodle)/admin/webservice/documentation.php
Foi utilizado o tutorial:
http://www.rumours.co.nz/manuals/using_moodle_web_services.htm
Github com exemplos:
https://github.com/iaopier/webservices
Passos básicos
Primeiramente o web service deve ser habilitado no
moodle:
Página inicial -> Administração do Site -> Opções avançadas -> Habilitar
serviços web (marcar).
Ou acessar:
(instalação do moodle)/admin/settings.php?section=optionalsubsystems
e habilitar os serviços web.
Passos básicos
Passos básicos
Ainda é preciso habilitar o protocolo que o web service irá
utilizar.
O moodle trabalha com os protocolos AMF, REST, SOAP
ou XML-RPC.
Página inicial -> Administração do site -> Plugins -> Serviços da web ->
Gerênciar protocolos (escolher o protocolo desejado).
Ou
(instalação do moodle)/admin/settings.php?section=webserviceprotocols
Permissões dos métodos
Para utilizarmos o web service ainda é necessário
selecionar os métodos que podem ser acessados pelo web
service, para isso devemos criar um serviço externo:
Página inicial -> Administração do site -> Plugins -> Serviços da Web ->
Serviços -> Externos -> Acrescentar
Ou
(instalação do moodle)/admin/webservice/service.php?id=0
Permissões dos métodos
Permissões dos métodos
Permissões dos métodos
Após criado o novo serviço externo, iremos definir quais
métodos ele pode utilizar:
Página inicial -> Administração do site -> Plugins -> Serviços da Web ->
Serviços externos -> Funções
Ou
(instalação do moodle)/moodle/admin/webservice/service_functions.php?id=2
Permissões dos métodos
Permissões dos métodos
Criando um usuário
Para uso das funções, precisamos de um usuário com as
capacidades suficientes para executar os métodos.
O usuário administrador possui todas as funções e pode
ser utilizado.
Ou podemos criar um novo usuário somente com as
permissões necessária.
Criando um usuários
Criar um novo usuário:
Página inicial -> Administração do site -> Usuários -> Contas -> Mostrar lista
de usuários
Ou
(instalação do moodle)/admin/user.php
Criando um usuários
Criando uma nova “role”
A “role” irá possuir as atribuições para que os métodos do
web service sejam utilizados. Para criar a nova role:
Página inicial -> Administração do site -> Usuários -> Permissões -> Definir
funções
Ou
(instalação do moodle)/admin/roles/manage.php
Criando uma nova “role”
Criando uma nova “role”
Criando uma nova “role”
Criando uma nova “role”
Atributos da nova “role”
webservice/xmlrpc:use
moodle/user:viewdetails
moodle/user:viewhiddendetails
moodle/course:useremail
moodle/user:create
moodle/user:delete
moodle/user:update
moodle/course:view
moodle/course:viewhiddencourses
moodle/course:update
enrol/manual:enrol
Atributos da nova “role”
Protocolo utilizado
Atribuir a nova “role”
Após a criação de definição das funções da nova role,
iremos fazer nosso usuário ser do tipo dela:
Página inicial -> Administração do site -> Usuários -> Permissões -> Designar
funções globais
Ou
(instalação do moodle)/admin/roles/assign.php?contextid=1
Atribuir a nova “role”
Criando um “token”
Para utilizar o serviço, um token gerado pelo moodle é
requerido na aplicação que irá consumir o web service.
Para criá-lo devemos ir em:
Página inicial -> Administração do site -> Plugins -> Serviços da Web ->
Gerenciar tokens
Ou
(instalação do moodle)/admin/settings.php?section=webservicetokens
Criando um “token”
Criando um “token”
Protocolo utilizado
Para esse tutorial, foi utilizado o XML-RPC ou XML
Remote Procedure Call.
No github, o tutorial está feito em REST:
https://github.com/iaopier/webservices
Códigos base
Para a utilização do XML-RPC:
Criar a classe Moodle:
class Moodle {
var $token = null;
var $server = null;
var $dir = null;
var $error = '';
function init($fields) {
$this->token = $fields['token'];
$this->server = $fields['server'];
$this->dir = $fields['dir'];
}
}
Códigos base
Request feita via XML-RPC, linha que cria o xml que será
enviado ao moodle:
$request = xmlrpc_encode_request('core_user_get_users_by_id',
array(array((string) $user_id)), array('encoding'=>'UTF-8'));
Códigos base
$context = stream_context_create(array('http' => array('method' => "POST",'header' =>"Content-Type:
text/xml",'content' => $request)));
$path = $this->server.$this->dir."/webservice/xmlrpc/server.php?wstoken=".$this->token;
$file = file_get_contents($path, false, $context);
$response = xmlrpc_decode($file);
Exemplo de função
function getUser($user_id) {
$this->error = null;
$request = xmlrpc_encode_request('core_user_get_users_by_id', array(array((string) $user_id)), array('encoding'=>'UTF-8'));
$context = stream_context_create(array('http' => array('method' => "POST",'header' => "Content-Type: text/xml",
'content' => $request)));
$path = $this->server.$this->dir."/webservice/xmlrpc/server.php?wstoken=".$this->token;
$file = file_get_contents($path, false, $context);
$response = xmlrpc_decode($file);
if (!is_array($response) || !is_array($response[0]) || !array_key_exists('id', $response[0])) {
if ($response[faultCode])
$this->error = 'Moodle error: ' . $response[faultString] . ". Fault code: ".$response[faultCode]. ".";
else
$this->error = 'Moodle returned no info. Check if user id exists and whether the web service account has capabilities required to execute
core_user_get_users_by_id call.';
$this->error .= " Actual reply from server: ".$file;
return false;
}
$user = $response[0];
return $user;
}
Uso da documentação
Uso da documentação
Uso da documentação
$params = array(array('eventids'=>array($event_id),
'courseids'=>array($course_id),
'groupids'=>array($group_id)));
$request = xmlrpc_encode_request('core_calendar_get_calendar_events',
$params, array('encoding'=>'UTF-8'));
Uso da documentação
Obrigado!

Mais conteúdo relacionado

Mais procurados

Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de RepetiçãoArthur Emanuel
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdfssuserc46a93
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIJihenHedhli1
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8Africa Performances
 
Tìm hiểu về Vmware
Tìm hiểu về VmwareTìm hiểu về Vmware
Tìm hiểu về VmwareBich Tuyen
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a InternetLeonardo Soares
 
Formation PHP
Formation PHPFormation PHP
Formation PHPkemenaran
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Thyago Maia
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP EL JAOUARI Ahmed
 

Mais procurados (20)

Cours sql-sh-
Cours sql-sh-Cours sql-sh-
Cours sql-sh-
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Polymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraitePolymorphisme, interface et classe abstraite
Polymorphisme, interface et classe abstraite
 
Java: Estruturas de Repetição
Java: Estruturas de RepetiçãoJava: Estruturas de Repetição
Java: Estruturas de Repetição
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Héritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLIHéritage et polymorphisme- Jihen HEDHLI
Héritage et polymorphisme- Jihen HEDHLI
 
Python Pandas
Python PandasPython Pandas
Python Pandas
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8Odoo Formation Administration Serveur V8
Odoo Formation Administration Serveur V8
 
Tìm hiểu về Vmware
Tìm hiểu về VmwareTìm hiểu về Vmware
Tìm hiểu về Vmware
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
Formation PHP
Formation PHPFormation PHP
Formation PHP
 
Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1Metodologia e Linguagem de Programação - Aula 1
Metodologia e Linguagem de Programação - Aula 1
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Les principes de base de PHP
 Les principes de base de PHP  Les principes de base de PHP
Les principes de base de PHP
 
Servidor WEB
Servidor WEBServidor WEB
Servidor WEB
 

Semelhante a Moodle api tutorial

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Thyago Maia
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Tchelinux
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Thyago Maia
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniterRaniere de Lima
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPArlindo Santos
 
Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Maurício Linhares
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com CodeceptionQualister
 
Joomla + Moodle = Joomdle
Joomla + Moodle = JoomdleJoomla + Moodle = Joomdle
Joomla + Moodle = JoomdleObiz
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraDavid O'Keefe
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsEduardo Mendes
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Maurício Linhares
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Thyago Maia
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Rodrigo Urubatan
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Thyago Maia
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Elton Minetto
 

Semelhante a Moodle api tutorial (20)

Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
Desenvolvimento de Sistemas Web com PHP Frameworks - 2019.1 - Aula 1
 
Django: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutosDjango: Desenvolvendo uma aplicação web em minutos
Django: Desenvolvendo uma aplicação web em minutos
 
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
Iniciando com Yii Framework - Volmar Machado da Silva Neto (Rede Pampa de Com...
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
 
Servlets
ServletsServlets
Servlets
 
Desafio Rest API
Desafio Rest APIDesafio Rest API
Desafio Rest API
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Slide 01 introdução ao php e ao code igniter
Slide 01   introdução ao php e ao code igniterSlide 01   introdução ao php e ao code igniter
Slide 01 introdução ao php e ao code igniter
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04Curso de Ruby on Rails - Aula 04
Curso de Ruby on Rails - Aula 04
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
 
Joomla + Moodle = Joomdle
Joomla + Moodle = JoomdleJoomla + Moodle = Joomdle
Joomla + Moodle = Joomdle
 
Lampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 PalestraLampada Php Conference Brasil 2007 Palestra
Lampada Php Conference Brasil 2007 Palestra
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fds
 
Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03Curso de Ruby on Rails - Aula 03
Curso de Ruby on Rails - Aula 03
 
Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1Desenvolvimento de sistemas web com php Frameworks - Aula 1
Desenvolvimento de sistemas web com php Frameworks - Aula 1
 
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015Interfaces ricas com Rails e React.JS @ Rubyconf 2015
Interfaces ricas com Rails e React.JS @ Rubyconf 2015
 
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
Desenvolvimento de Sistemas Web com PHP Frameworks - Aula 4 - 2019.1
 
Introdução ao Zend Framework 2
Introdução ao Zend Framework 2Introdução ao Zend Framework 2
Introdução ao Zend Framework 2
 

Moodle api tutorial

  • 2. Documentação A documentação da api se encontra em: (instalação do moodle)/admin/webservice/documentation.php Foi utilizado o tutorial: http://www.rumours.co.nz/manuals/using_moodle_web_services.htm Github com exemplos: https://github.com/iaopier/webservices
  • 3. Passos básicos Primeiramente o web service deve ser habilitado no moodle: Página inicial -> Administração do Site -> Opções avançadas -> Habilitar serviços web (marcar). Ou acessar: (instalação do moodle)/admin/settings.php?section=optionalsubsystems e habilitar os serviços web.
  • 5. Passos básicos Ainda é preciso habilitar o protocolo que o web service irá utilizar. O moodle trabalha com os protocolos AMF, REST, SOAP ou XML-RPC. Página inicial -> Administração do site -> Plugins -> Serviços da web -> Gerênciar protocolos (escolher o protocolo desejado). Ou (instalação do moodle)/admin/settings.php?section=webserviceprotocols
  • 6. Permissões dos métodos Para utilizarmos o web service ainda é necessário selecionar os métodos que podem ser acessados pelo web service, para isso devemos criar um serviço externo: Página inicial -> Administração do site -> Plugins -> Serviços da Web -> Serviços -> Externos -> Acrescentar Ou (instalação do moodle)/admin/webservice/service.php?id=0
  • 9. Permissões dos métodos Após criado o novo serviço externo, iremos definir quais métodos ele pode utilizar: Página inicial -> Administração do site -> Plugins -> Serviços da Web -> Serviços externos -> Funções Ou (instalação do moodle)/moodle/admin/webservice/service_functions.php?id=2
  • 12. Criando um usuário Para uso das funções, precisamos de um usuário com as capacidades suficientes para executar os métodos. O usuário administrador possui todas as funções e pode ser utilizado. Ou podemos criar um novo usuário somente com as permissões necessária.
  • 13. Criando um usuários Criar um novo usuário: Página inicial -> Administração do site -> Usuários -> Contas -> Mostrar lista de usuários Ou (instalação do moodle)/admin/user.php
  • 15. Criando uma nova “role” A “role” irá possuir as atribuições para que os métodos do web service sejam utilizados. Para criar a nova role: Página inicial -> Administração do site -> Usuários -> Permissões -> Definir funções Ou (instalação do moodle)/admin/roles/manage.php
  • 16. Criando uma nova “role”
  • 17. Criando uma nova “role”
  • 18. Criando uma nova “role”
  • 19. Criando uma nova “role”
  • 20.
  • 21. Atributos da nova “role” webservice/xmlrpc:use moodle/user:viewdetails moodle/user:viewhiddendetails moodle/course:useremail moodle/user:create moodle/user:delete moodle/user:update moodle/course:view moodle/course:viewhiddencourses moodle/course:update enrol/manual:enrol
  • 22. Atributos da nova “role”
  • 24. Atribuir a nova “role” Após a criação de definição das funções da nova role, iremos fazer nosso usuário ser do tipo dela: Página inicial -> Administração do site -> Usuários -> Permissões -> Designar funções globais Ou (instalação do moodle)/admin/roles/assign.php?contextid=1
  • 25. Atribuir a nova “role”
  • 26. Criando um “token” Para utilizar o serviço, um token gerado pelo moodle é requerido na aplicação que irá consumir o web service. Para criá-lo devemos ir em: Página inicial -> Administração do site -> Plugins -> Serviços da Web -> Gerenciar tokens Ou (instalação do moodle)/admin/settings.php?section=webservicetokens
  • 29. Protocolo utilizado Para esse tutorial, foi utilizado o XML-RPC ou XML Remote Procedure Call. No github, o tutorial está feito em REST: https://github.com/iaopier/webservices
  • 30. Códigos base Para a utilização do XML-RPC: Criar a classe Moodle: class Moodle { var $token = null; var $server = null; var $dir = null; var $error = ''; function init($fields) { $this->token = $fields['token']; $this->server = $fields['server']; $this->dir = $fields['dir']; } }
  • 31. Códigos base Request feita via XML-RPC, linha que cria o xml que será enviado ao moodle: $request = xmlrpc_encode_request('core_user_get_users_by_id', array(array((string) $user_id)), array('encoding'=>'UTF-8'));
  • 32. Códigos base $context = stream_context_create(array('http' => array('method' => "POST",'header' =>"Content-Type: text/xml",'content' => $request))); $path = $this->server.$this->dir."/webservice/xmlrpc/server.php?wstoken=".$this->token; $file = file_get_contents($path, false, $context); $response = xmlrpc_decode($file);
  • 33. Exemplo de função function getUser($user_id) { $this->error = null; $request = xmlrpc_encode_request('core_user_get_users_by_id', array(array((string) $user_id)), array('encoding'=>'UTF-8')); $context = stream_context_create(array('http' => array('method' => "POST",'header' => "Content-Type: text/xml", 'content' => $request))); $path = $this->server.$this->dir."/webservice/xmlrpc/server.php?wstoken=".$this->token; $file = file_get_contents($path, false, $context); $response = xmlrpc_decode($file); if (!is_array($response) || !is_array($response[0]) || !array_key_exists('id', $response[0])) { if ($response[faultCode]) $this->error = 'Moodle error: ' . $response[faultString] . ". Fault code: ".$response[faultCode]. "."; else $this->error = 'Moodle returned no info. Check if user id exists and whether the web service account has capabilities required to execute core_user_get_users_by_id call.'; $this->error .= " Actual reply from server: ".$file; return false; } $user = $response[0]; return $user; }
  • 36. Uso da documentação $params = array(array('eventids'=>array($event_id), 'courseids'=>array($course_id), 'groupids'=>array($group_id))); $request = xmlrpc_encode_request('core_calendar_get_calendar_events', $params, array('encoding'=>'UTF-8'));