通过Moodle中的Web服务登录API

neh*_* sk 4 php moodle moodle-api

我正在尝试编写从外部网站到moodle 的登录API。我不知道如何实现它。请引导我完成。我想通过 REST Web 服务创建。这样学生就可以通过该外部网站登录。

dan*_*ola 6

好的,首先,确保你有配置良好的moodle

  • 启用 Web 服务:YOUR_MOODLE_URL/admin/settings.php?section=optionalsubsystems
  • 启用休息协议:YOUR_MOODLE_URL/admin/settings.php?section=webserviceprotocols
  • 已启用 Moodle 移动 Web 服务:YOUR_MOODLE_URL/admin/settings.php?section=externalservices
  • 启用角色功能 webservice/rest:用于经过身份验证的用户角色:通常是 YOUR_MOODLE_URL/admin/roles/define.php?action=edit&roleid=7

假设这是指最新版本 3.5,这里是一个使用 javascript 和 axios 的示例(Axios 是浏览器和 Node.js 的基于 Promise 的 HTTP 客户端)

axios
     .get(YOUR_MOODLE_URL + "/login/token.php", {
          params: {
              username: "YOUR_FORM_USERNAME",
              password: "YOUR_FORM_PASSWORD",
              service: 'moodle_mobile_app'
          }
       })
       .then((response) => {
           console.log(response.data)
       })
      .catch((err) => console.error(error))
Run Code Online (Sandbox Code Playgroud)

或者,如果您想使用浏览器进行测试,请转到:YOUR_MOODLE_URL/login/token.php?username=YOUR_FORM_USERNAME&password=YOUR_FORM_PASSWORD&service=moodle_mobile_app

将 YOUR_MOODLE_URL 替换为您的 Moodle 安装的 URL,并将 YOUR_FORM_USERNAME 和 YOUR_FORM_PASSWORD 替换为有效凭据。

这样您就可以获取用户登录的令牌来在 Moodle 中执行任何操作。