【问题标题】:Getting quizzes from Moodle从 Moodle 获取测验
【发布时间】:2014-04-15 01:42:24
【问题描述】:

【问题讨论】:

  • 你得到什么异常响应?

标签: moodle


【解决方案1】:

我认为您指的是document。如果您仔细阅读,您会注意到这是一个关于如何 测验网络服务应该 编写的提案。

事实上,当我尝试您的查询时,为了获取课程中的所有测验,我得到了:

{"exception":"dml_missing_record_exception","errorcode":"invalidrecord",
 "message":"Can not find data record in database table external_functions.",
 "debuginfo":"SELECT * FROM {external_functions}
              WHERE name = ?\n[array (\n  0 => 'get_quiz',\n)]"}

Moodle 没有找到外部函数get_quiz。这意味着......不幸的是,到目前为止,Moodle 没有用于测验的网络服务。

如果您喜欢冒险,并且您需要的只是进行测验,您可以实现一个 Web 服务来做到这一点。有关测验的相关 Moodle 表是 mdl_quiz(完整架构,请查看 this article),下面是展示如何实现它的教程:Adding a web service to a plugin - Moodle Docs

【讨论】:

  • 它不是用于测验的有效 API。这是他们的提案设计。如果你走这条路(在你的moodle):Site administration / Plugins / Web services / API Documentation,你会看到没有这样的网络服务
  • 无论如何,我真的希望他们在下一个版本中实现该功能。它真的会派上用场。
  • 您可以获得课程内容列表,因为您可以看到测验列表也像这个 webservice/rest/server.php?wstoken=3afe18c8697dac9518d59bb8f10429b4&wsfunction=core_course_get_contents&moodlewsrestformat=json&courseid=8
  • 如果您知道如何从 Moodle 默认 web 服务获取私有文件列表,这里是我用来获取 webservice/rest/server.php?wstoken=3afe18c8697dac9518d59bb8f10429b4&wsfunction=core_files_external&moodlewsrestformat=json&contextid=2&component= 的托盘用户&filearea=private&itemid=0
【解决方案2】:

mod_quiz_get_quizzes_by_courses 是完成这项工作的功能。怎么称呼它


https://yourmoodledomain/webservice/rest/server.php?moodlewsrestformat=json&courseids[0]=courseid&wsfunction=mod_quiz_get_quizzes_by_courses&wstoken=yourusertoken

【讨论】:

  • 如果您需要检索测验设置,也是一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多