当前位置: 首页 > 知识库问答 >
问题:

作为学生从Moodle API获取信息

邵阳
2023-03-14

我现在是一个大学的学生,我每天都在使用Moodle。我想访问一些我可用的信息(例如,我正在参加的类的信息,哪些任务是到期的,什么时候,等等)

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

作为一个学生,有没有一种简单的方法让我得到这些信息?

我的应用程序使用Node.js

共有1个答案

萧晓博
2023-03-14

如果您的大学为移动应用程序启用了Web服务,您可以生成自己的API令牌并调用移动应用程序使用的Web服务。如果未启用后者,则必须与管理员联系以获得Web服务访问权限。

使用moodle.org演示

首先,让我们获得一个API令牌(用您的密码替换$password):

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

接下来,我们需要您的userid,它将在其他web服务调用中使用。您可以通过调用web服务core_webservice_get_site_info来获取用户ID。请确保将$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,我们可以请求您注册的课程。

$ 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...
    }
]

重述‘

先决条件:

  • 必须启用Mobile App webservices
  • 必须启用REST协议
  • 您需要API令牌

正在查询:

  • yourhost/webservice/rest/server.php?moodlewsrestformat=json发出请求。
  • 请求必须是post请求
  • 请求必须包含wstoken:您的令牌
  • 请求必须包含wsfunction:您正在调用的函数
  • 请求类型必须为:application/x-www-form-urlencoded

更多

我已经大大简化了它的工作方式以及有哪些替代方案,但这应该让您开始。您可能有兴趣查看开发人员文档以获得关于可用web服务的更多信息:

  • Web服务开发人员文档
  • Web服务功能列表(可能不经常更新)
 类似资料:
  • 11.2 生物信息学 计算生物学(computational biology)研究如何用计算机来解决生物学问题,主要研究内 容包括对生物系统的数学建模、对生物数据的分析、模拟等。本节介绍计算生物学的一个分 支——生物信息学①。 生物信息学(bioinformatics)主要研究生物信息的存储、获取和分析,这里所说的生物 信息主要是指基因组信息。近年来,通过庞大的项目合作,生物学家对人类基因组和其他

  • 系统功能设计 代码实现 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<dos.h> #include<string.h> #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-12.1lf%-12.1lf%-12.1lf%-12.1lf\n" #d

  • 本文向大家介绍从SAP获取MS SharePoint工作流中的信息,包括了从SAP获取MS SharePoint工作流中的信息的使用技巧和注意事项,需要的朋友参考一下 有许多工具可为SharePoint提供此功能。尝试使用BCS Business Connectivity Service和LINQ将数据从SAP获取到SharePoint列表,然后在工作流中使用该数据。 要编写自己的自定义工作流程,

  • 问题内容: 我还无法找出如何使用PHP进行操作,并想尝试找出答案。 我注意到他们列出了,其中提供了有关浏览器的大量信息。他们是从中获取操作系统信息还是从别的东西获取操作系统信息?有没有我可以用来获取用户操作系统的API? 我知道他们是如何获得浏览器和IP的,但无法弄清操作系统部分! 问题答案: 下面的代码可以单独说明如何显示某人正在使用哪个操作系统。 它的作用是嗅探您的核心操作系统模型,例如作为我

  • 我试图弄清楚是否有可能返回某种流(可能是内存流?)我从我的桶里得到的东西。 S3 bucket包含很多不同类型的图像、文档等。所有这些都应该在我的网站上使用。但是,我不想显示AWS S3存储桶的路径 这就是为什么我试图创建一个流,并动态显示图像和可下载文档,而不是使用完整路径。这有意义吗?:-) 我用的是C#/。NET AWS SDK。 期待听到任何想法和方向指向!

  • 问题内容: 我在从此api阅读时遇到麻烦 http://api.xhanch.com/islamic-get-prayer- time.php?lng=67&lat=24&yy=2012&mm=7&gmt=5&m=json 这是我的代码: 此方法始终返回空白字符串,而不是我需要的信息。 问题答案: 这为你提供了一个可行的例子