O documento fornece instruções sobre como configurar e usar a API do Moodle, incluindo habilitar o web service, criar um usuário com permissões apropriadas, gerar um token e fazer chamadas usando XML-RPC.
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
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
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'));