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

调用Moodle core_user_update_users接口时JSON请求报错排查

排查Moodle core_user_update_users JSON请求报错的问题

你遇到的invalid_parameter_exception错误,大概率是JSON请求的Content-Type头部设置错误,或是Moodle Web Service对JSON参数的解析规则未匹配,以下是具体排查点和解决办法:

1. 确认Content-Type头部设置

在Postman中使用JSON格式请求时,必须手动设置请求头:

Content-Type: application/json

如果未设置该头部,Moodle会将你的JSON数据当作普通表单数据解析,导致参数结构不匹配,触发参数无效错误。而form-urlencoded格式会自动带上正确的application/x-www-form-urlencoded头部,因此能正常工作。

2. 检查JSON参数细节匹配

尽管你的JSON结构看似符合接口定义,仍需确认以下细节:

  • 自定义字段的type值需完全匹配Moodle中对应自定义字段的短名称(Short name):进入Moodle后台的「用户自定义字段」设置,查看目标字段的短名称,确保和JSON里的company_name完全一致(大小写敏感)。
  • 确保JSON语法无错误:比如逗号、括号闭合正常,字符串仅使用双引号。你的示例JSON语法正确,但实际请求若存在拼写疏漏,也会触发报错。

3. 验证Moodle Web Service的JSON支持

  • 进入Moodle后台:站点管理 > 插件 > Web服务 > 管理协议,确认REST协议已启用,且REST协议配置允许接收JSON格式请求(默认允许,部分版本可能需手动开启)。
  • 检查Web服务令牌(token)权限:确保令牌关联的用户拥有moodle/user:update权限,且权限范围覆盖你要更新的用户。

4. 简化请求测试

先发送极简JSON请求验证基础功能,比如仅更新单个用户的基本信息:

{
    "users": [
        {
            "id": 554,
            "institution": "test institute"
        }
    ]
}

若该请求成功,再逐步添加自定义字段内容,排查是否为自定义字段部分的问题。

内容的提问来源于stack exchange,提问作者the.herbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 05:38:12