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.