gpt4 book ai didi

node.js - 作为学生从 Moodle API 获取信息

转载 作者:搜寻专家 更新时间:2023-11-01 00:16:46 25 4
gpt4 key购买 nike

我目前是一名大学学生,每天都在使用 Moodle。我想访问一些我可用的信息(例如,我正在上的类(class)的信息、哪些作业到期以及何时等)

我对 Moodle 的 API 进行了一些研究,但它似乎都是针对实际运行 Moodle 的高级用户(我的大学)。

作为一名学生,有没有一种简单的方法可以获取这些信息?

我的应用程序使用 Node.js

最佳答案

如果您的大学已为移动应用启用网络服务,您可以生成自己的 API token 并调用移动应用使用的网络服务。如果未启用后者,您必须联系您的管理员以获得 Web 服务访问权限。

使用 moodle.org 进行演示

首先,让我们获取一个 API token (将 $USERNAME 替换为您的用户名,并将 $PASSWORD 替换为您的密码):

$ curl -d username="$USERNAME" -d password="$PASSWORD" 'https://moodle.org/login/token.php?service=moodle_mobile_app'
{
"token":"SNIPTOKEN",
"privatetoken":"SNIPPRIVATE"
}

接下来,我们需要您的userid,它将在其他网络服务调用中使用。您可以通过调用网络服务 core_webservice_get_site_info 来获取您的 userid。确保将 $TOKEN 替换为您在上面获得的 token 。

$ curl -d wstoken="$TOKEN" -d wsfunction=core_webservice_get_site_info 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool | grep userid
"userid": 1451616,

现在您有了userid,我们可以请求您注册的类(class)。

$ curl -d wstoken="$TOKEN" -d wsfunction=core_enrol_get_users_courses -d userid=1451616 'https://moodle.org/webservice/rest/server.php?moodlewsrestformat=json' | python -m json.tool
[
{
...snip...
"fullname": "Moodle in English",
"id": 5,
...snip...
},
{
...snip...
"fullname": "Moodle en fran\u00e7ais",
"id": 20,
...snip...
},
{
...snip...
"fullname": "Moodle Certification",
"id": 48,
...snip...
}
]

回顾'

先决条件:

  • 必须启用移动应用网络服务
  • 必须启用REST协议(protocol)
  • 您需要一个 API token

查询:

  • YOURHOST/webservice/rest/server.php?moodlewsrestformat=json 发出请求。
  • 请求必须是POST请求
  • 请求必须包含wstoken:你的 token
  • 请求必须包含wsfunction:你正在调用的函数
  • 请求类型必须是:application/x-www-form-urlencoded

更多

我已经大大简化了它的工作原理和替代方案,但这应该可以帮助您入门。您可能有兴趣查看开发人员文档以获取有关可用 Web 服务的更多信息:

关于node.js - 作为学生从 Moodle API 获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com