O Moodle disponibiliza uma API para acesso e manipulação de

Propaganda
O Moodle disponibiliza uma API para acesso e manipulação de diversas
informações em seu ambiente. Para sua utilização é necessária a configuração de
serviços e permissões na plataforma. Segue abaixo um passo-a-passo sobre como
montar essa solução. Não será tratada a instalação inicial dessas ferramentas.
Versões
• Moodle 2.5
• Ubuntu 12 ou superior, OSX 10.6 ou superior
• PHP 5.3 ou superior
• MySQL 5.5 ou superior
Passo 1 - Habilitar os webservices e o protocolo
Por questões de segurança, o Moodle vem com essa opção desabilitada.
Então, para que ele aceite chamadas na URL de webservices é preciso habilitar
essa funcionalidade.
⁃
Home -> Administração do site -> Opções avançadas -> Habilitar serviços
web.
⁃
Clicar em “Salvar mudanças”.
⁃
Home -> Administração do site -> Plugins -> Serviços da web -> Gerenciar
protocolos.
⁃
Habilitar “Protocolo XML-RPC” clicando no ícone da coluna “Ativar”.
⁃
Clicar em “Salvar mudanças”.
Passo 2 - Criar o webservice
Você pode criar webservices com permissões e serviços diferentes. Por essa
razão, é preciso esse passo.
⁃
Home -> Administração do site -> Plugins -> Serviços da web -> Serviços
externos.
⁃
Clique em “Acrescentar”. Preencha o campo “Nome” e marque o checkbox
“Ativado”.
⁃
Clique em “Adicionar serviço”.
⁃
Na tela seguinte, clique em “Adicionar funções”. Ou pelo menu : Home ->
Administração do site -> Plugins -> Serviços da web -> Serviços
externos -> Funções
⁃
Adicione as seguintes funções ao webservice :
⁃
⁃
⁃
⁃
⁃
⁃
⁃
⁃
⁃
⁃
⁃
Cursos:
core_course_get_categories
core_course_update_courses
core_course_get_courses
core_course_get_contents
core_enrol_get_users_courses
core_group_get_course_groups
Usuários:
core_user_create_users
core_user_get_users_by_field
core_user_get_course_user_profiles
⁃
⁃
⁃
core_user_delete_users
core_user_update_users
core_enrol_get_enrolled_users
* É importante ficar atento aos itens da coluna “Capacidades exigidas”.
Essas são as permissões exigidas para se executar essas funções. Para resolver
isso precisamos criar um usuário para o webservice, uma regra e atribuir as
permissões a essa regra.
Passo 3 - Criar um usuário que vai utilizar o webservice
Por questões de segurança, quem poderá chamar o webservice será um
usuário específico. Dessa forma isolamos o acesso ao Moodle e controlamos
melhor as permissões do que o usuário pode fazer.
⁃
Home -> Administração do site -> Usuários -> Contas -> Mostrar lista de
usuários.
⁃
Clique em “Acrescentar novo usuário”.
⁃
Crie um usuário qualquer, como “moodle_webservices”. Pode preencher
apenas os campos obrigatórios.
Passo 4 - Criar uma nova regra no sistema para as funções do webservice
Nessa etapa vamos criar a regra que será atribuída ao usuário que criamos
para responder pelo webservice.
⁃
Home -> Administração do site -> Usuários -> Permissões -> Definir
funções.
⁃
Crie uma nova regra clicando em “Acrescentar um novo papel”.
⁃
Preencha o campo nome, por exemplo, “Regras WebService” ou o que
preferir.
⁃
Na opção “Tipos de contexto onde esse papel pode ser atribuído” selecione
“Sistema”
⁃
Adicionar as permissões a essa regra. A dica é fazer uma busca na página
pelos termos a seguir e selecionar a opção “Permitir” :
⁃
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
⁃
moodle/course:visibility
⁃
enrol/manual:enrol
⁃
moodle/course:changecategory
⁃
moodle/course:changefullname
⁃
moodle/course:changeshortname
⁃
moodle/course:changesummary
⁃
moodle/course:delete
⁃
⁃
moodle/category:viewhiddencategories
moodle/site:accessallgroups
Após atribuir as regras e as devidas permissões, clique em “Salvar” no final da
página.
Passo 5 Para que o recurso de matrícula funcione corretamente, é
necessário permitir que o webservice atribua uma regra às contas de estudante que
ele criar.
Isso é feita da seguinte forma :
⁃
Home -> Administração do site -> Usuários -> Permissões.
⁃
Clique na aba “Permitir designação de funções”.
⁃
Na tabela que se abre, na linha do webservice criado, marcar o
checkbox da coluna “Estudante”.
⁃
Clicar em “Salvar”.
Passo 6 - Associar o usuário do webservice à regra criada
Execute os passos :
⁃
Home -> Administração do site -> Usuários -> Permissões ->
Designar funções globais.
⁃
Clique no webservice criado;
⁃
Na tela seguinte, selecione o usuário que será vinculado à regra no
box à direita. Provavelmente ele é o último dentro da listagem
da caixa.
⁃
Clique no botão “Acrescentar”
⁃
Clique em “Voltar para lista de funções”.
Passo 7 - Criar um token
Esse token será associado ao usuário que criamos para o webservice.
Será através dele que o sistema poderá utilizar as funções do Moodle.
⁃
Home -> Administração do site -> Plugins -> Serviços da web ->
Gerenciar tokens
⁃
Clique em “Acrescentar”
⁃
Selecione o usuário para o qual o token será gerado. Provavelmente
o último da lista.
⁃
Selecione o serviço que será associado ao token
⁃
Se desejar informar um prazo de validade para o token, escolha uma
data e marque o checkbox “Ativar”
⁃
Clique em “Salvar mudanças”
Caso você tenha esquecido de ativar Permissões para alguma função
que vc associou ao seu webservice, elas serão listadas na coluna “Usuário”. Para
resolver, basta seguir as orientações do passo 4.
Conclusão
Nesse momento vc está com o Moodle preparado para interagir com
solicitações via XML-RPC. A próxima etapa é utilizar a classe Zend_XmlRpc_Client
para as interações com o webservice.
Download