You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于通过Moodle Web Service传递用户ID(100)并获取对应用户存储数据JSON字符串的技术问询

获取Moodle指定用户ID存储数据(JSON格式)的可行方案

当然有可行的办法!Moodle自带的Web Service就能轻松实现这个需求,我给你拆解一下具体步骤和细节:

1. 先开启Web Service功能

这是前提哈,得先让你的Moodle站点支持Web Service:

  • 进入「站点管理」→「高级功能」,勾选「启用Web服务」
  • 接着到「插件 → Web服务 → 管理协议」,启用你需要的协议,最常用的就是REST协议,直接勾上就行

2. 创建专属的Web服务

接下来要建一个专门用来获取用户数据的服务:

  • 进入「插件 → Web服务 → 外部服务」,点击「添加」,给服务起个好记的名字,比如user_data_retrieval
  • 把「启用」选项设为「是」,然后在「允许的函数」里添加核心函数:core_user_get_users——这个函数就是用来根据条件拉取用户数据的,完全符合你的需求
  • 要是你只需要单个用户的极简数据,也可以看看core_user_get_user_by_id(部分新Moodle版本支持这个更精准的函数)

3. 生成访问令牌

这个令牌是你调用服务的“钥匙”,得用有权限的用户来生成:

  • 进入「插件 → Web服务 → 管理令牌」,点击「添加」
  • 选择刚才创建的服务,再选一个有用户查看权限的账号(比如管理员或者有用户管理权限的角色),保存后就能拿到一串令牌字符串,记好它!

4. 发送请求获取JSON数据

一切准备好后,就可以发请求拉数据了,用REST协议的话,请求URL大概是这样的:

https://你的Moodle域名/webservice/rest/server.php?wstoken=你的令牌字符串&wsfunction=core_user_get_users&moodlewsrestformat=json&criteria[0][key]=id&criteria[0][value]=100

参数解释一下:

  • wstoken:就是刚才生成的令牌,用来验证身份
  • wsfunction:指定调用的函数,这里填core_user_get_users
  • moodlewsrestformat=json:明确告诉Moodle返回JSON格式的数据
  • criteria:筛选条件,这里设置按用户ID筛选,值为100,刚好匹配你的需求

几个要注意的点

  • 生成令牌的用户必须有足够的权限,比如「查看用户资料」的权限,不然会返回权限不足的错误
  • 不同Moodle版本的函数参数可能略有差异,要是遇到问题,可以看看对应版本的官方文档里的Web Service函数说明
  • 测试的时候可以用Postman、curl或者直接在浏览器里输URL(仅限测试环境哈),看看返回的JSON数据是不是你要的内容

内容的提问来源于stack exchange,提问作者D-T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 20:48:12