问题标签 [moodle-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3376 浏览

moodle - Moodle 用户使用 Api 注册课程

我是 Moodle 的新手,但我在本地服务器上设置站点。创建了新课程,用户进入其中。我想通过 Javascript API 将患者注册到特定课程(使用管理端创建)。是否可以在课程中注册用户。我找不到任何用于注册部分的 API

0 投票
1 回答
1883 浏览

wso2 - WSO2 - Api Manager - 将帖子正文参数作为 URL 查询字符串传递给 Moodle

我们正在实施 WSO2-AM 来处理从我们希望向互联网公开的 Moodle LMS 对一些内部 API 的访问。

我正在通过 WSO2 配置对此 LMS 的访问,但遇到了无法解决的问题。

我意识到 WSO2 文档很广泛,但我实际上无法找到此配置的特定实例。

背景: Moodle 本身以非常非标准的方式实现了它的 API。他们称它们为 REST,但它们并不是真正的宁静。某些参数(例如用户令牌)在 URL 查询字符串中传递,而不是在查询本身的正文中使用标头。

首先,我在 WSO2 中配置了两个 API,一个用于从 Moodle 请求用户令牌(Moodle 需要它以允许特定用户访问 API),另一个用于获取用户注册的课程列表。

通过 WSO2 从 Moodle 获取用户令牌的第一个请求按预期进行。我通过标头将用户名/密码/服务参数传递给 WSO2,如您所料(以便它们通过 HTTPS 加密),它作为 POST 推送到 Moodle。Moodle 通过 WSO2 的响应符合预期,这是一个 JSON 有效负载,其中包含我的客户端然后解析以在后续请求中使用的令牌。

下一个请求是调用 Moodle 中更有用的服务,让用户注册课程。这里提到了两个问题,我不确定如何解决。

问题: Moodle 需要 GET 或 POST 参数来调用网络服务。当我使用便于测试的 GET 时,从客户端传递到 WSO2 的参数要么是错误的(在“userid”的情况下),要么是缺失的(在帖子中的 wstoken 字段的情况下)身体)。

在 API 发布者中,我为 POST 配置了 WSO2 中的 API,其 URL 模式为 {version}/courses/{userid} API 定义配置如下: API 定义

API端点配置为: API 端点配置

网址:http://(moodleurl)/webservice/rest/server.php?wstoken= {uri.var.wstoken}&wsfunction=core_enrol_get_users_courses&moodlewsrestformat=json&userid={uri.var.userid}

Apache 托管 Moodle 收到的 GET URL 是:xx.xx.xx.xx - - [09/Aug/2016:10:36:03 +0930] "POST /webservice/rest/server.php?wstoken=&wsfunction=core_enrol_get_users_courses&moodlewsrestformat =json&userid=6/6 HTTP/1.1" 200 270

因此,这两个问题是缺少 'wstoken' 参数(在提供给 WSO2 的帖子正文中,以及 'userid' 被加倍并在项目之间加上斜线。

我已经通过代理运行客户端,并且数据似乎已正确发送到 WSO2: 客户端->WSO2 代理

所以我想知道我能做些什么来解决这些问题:

是否有不同的 URL 参数可用于在 URL 中正确包含发布到服务 API 地址的正文参数?

我是否有一些特定的配置问题导致 userid 参数以这种方式中断?

来自客户端的发布参数似乎确实包含在 WSO2 发给 Moodle 的帖子中;因此很可能它们可以从 URL 中删除,并简单地包含在 WSO2 的 Moodle 的帖子正文中,这意味着可能只有 userid 参数的问题需要解决才能使其正常工作 - 不幸的是我不是确定如何在 WSO2 和 Moodle 本身之间放置一个代理来验证发布到 API 的参数,而不是使用 Wireshark。

0 投票
1 回答
1115 浏览

php - Moodle 注册表单更改操作 url

我正在尝试在moodle中自定义注册表单。我已经修改了 moodle\login\signup_form.php 以添加其他字段。现在我想更改表单的操作 url。因为我的注册表单在主页上,我想将操作 url 更改为moodle\login\signup.php。请帮忙。

0 投票
0 回答
1380 浏览

javascript - 使用 MOODLE 创建用户并通过 Webservice API 为他们注册课程

如何通过 Web 服务 API 将用户注册到特定课程,我有令牌、用户凭据和课程详细信息。如何创建请求?

我正在尝试注册这样的课程

但它给出了错误..请帮助

0 投票
3 回答
939 浏览

moodle - 如何在moodle中创建新的Web服务?

我正在浏览moodle内部的服务模块,如何添加自己的函数和类来处理一些操作,例如注册和注册。有没有可能

0 投票
1 回答
2561 浏览

moodle - Moodle 自定义服务创建问题

我正在尝试为我的功能增强创建 Moodle 自定义服务

根据这些文档更新服务模块。创建服务模块和 external_lib.php 文件。但是我在访问 Web 服务 API 时出错了

错误:{"exception":"dml_missing_record_exception","errorcode":"invalidrecord","message":"在数据库表 external_functions 中找不到数据记录。"}

启用调试模式并再次尝试。它显示外部函数注册错误。

我如何在 Moodle 中注册新创建的服务?请帮助

0 投票
1 回答
2481 浏览

php - 我想检索课程模块的实例

tl;博士; 尝试通过mysql或官方moodle api通过课程模块获取课程模块实例。不过,我最终的解决方案似乎相当草率,所以我想要一些建议。

嗨 Moodle 人

我正在尝试为 mdl_course_modules 中的每一行检索相应的课程模块实例,此上下文中的实例将是来自 mdl_quiz、mdl_wiki 或其他一些 course_modules 实例的单行。

我尝试了一些事情,我期望工作的是:

我无法从 $mod_info 获取课程模块实例。

所以我试着做一些自定义的mysql,

sql 还没有完成,我偶然发现我事先并不知道所有不同的课程模块,这意味着我必须动态使用 course_module 的名称来选择我想要加入的实例表,或者只需在所有可能的课程模块实例表上进行 LEFT JOIN,但如果有人放入新的课程模块实例,这将花费很长时间并且将停止工作。

现在我正在做以下事情:

最后一段代码最终会起作用,我将能够从 $course_mod 变量(例如 $course_mod->instance、$course_mod->mod_name 等)动态创建查询。

但我认为这似乎很难。你们中有人成功地以更简单的方式获取 course_module 实例吗?

谢谢!!

0 投票
1 回答
430 浏览

moodle - Moodle课程完成状态未在移动应用程序中更新

我在课程中创建了新课程和一些主题,通过管理端设置课程跟踪设置。添加了用户手动关闭课程(课程课程)状态(阅读/查看状态)的权限。在 Web 应用程序中,状态显示课程已由用户完成(勾选标记) 在此处输入图像描述

所以在 Web 应用程序管理端它显示活动已完成。

但我在移动应用程序中访问课程信息,它显示 PHP 基础和 PHP5 语法部分未启动

在此处输入图像描述

我被这部分困住了。请帮忙

0 投票
1 回答
3229 浏览

moodle - 获取Moodle中上传图片的路径

我添加了自定义列来存储公司徽标。我使用了moodle的文件api,例如:

提交表单后,itemid 将存储在自定义列中。说“648557354”

现在我需要获取图像以在证书上打印徽标。如何从 itemid 获取图像路径?我是否需要存储任何其他信息来检索图像?

0 投票
3 回答
1834 浏览

moodle - Moodle设置权限无效

我在 Moodle 3.0.5 上配置了 REST 网络服务以使用core_course_get_courses应该返回包含所有可用课程基本信息的响应的功能。

这是我一直在使用的网址:

而且,这就是我得到的:

有问题的权限从一开始就设置好了,即:

角色权限设置页面

它没有任何效果。我什至允许一切,几百个权限只是为了看看它是否会起作用,但仍然没有效果。

我使用了具有相同服务的另一个功能,它确实有效!:

另一个重要的事实是,该core_course_get_courses功能可以在全新安装 Moodle 的本地开发机器上运行。生产环境安装了 50 个附加插件。调试,“开发人员的额外 Moodle 调试消息”已启用,但没有显示错误。

这可能是什么原因?

PS开发。机器是 Ubuntu 14.04