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

rocketchat_API调用users_list()返回error-invalid-query报错如何解决

RocketChat users_list() 接口返回 error-invalid-query 错误解决方案

问题原因

该报错是RocketChat服务端升级至6.0及以上版本后,默认开启REST API查询字段白名单校验导致的。旧版本rocketchat_API Python库调用users_list()时,默认拼接的查询参数包含emails.address字段,该字段不在新版服务端默认允许的查询字段列表中,因此即使调用时未手动传任何过滤参数,也会触发非法查询报错;服务端升级前无该校验逻辑,因此代码此前可正常运行。

可行解决方案

  • 方案1(推荐):升级rocketchat_API依赖到最新版本
    最新版本的库已经适配新版RocketChat的接口校验规则,移除了默认参数中不被允许的查询字段,无需修改原有业务代码,直接执行升级命令即可:

    pip install --upgrade rocketchat_API
    

    升级完成后原代码可直接正常调用。

  • 方案2:无法升级依赖时,手动覆盖接口默认参数
    如果暂时不能升级依赖版本,调用users_list()时手动传入空的查询条件和返回字段配置,覆盖库自带的默认非法参数即可,修改后的调用示例:

    from pprint import pprint
    from rocketchat_API.rocketchat import RocketChat
    
    username = "bot"
    password = "password"
    server_url = "https://server.com/"
    bot = RocketChat(username, password, server_url=server_url)
    
    # 传入空query、fields参数覆盖库默认值
    pprint(bot.users_list(query={}, fields={}).json())
    
  • 方案3:自建服务端可调整API白名单配置
    如果你使用的是自建RocketChat服务端且拥有管理员权限,可进入管理后台调整REST API配置:依次打开「管理面板-设置-常规-REST API」,找到允许的查询字段配置项,在列表中追加emails.address,保存配置后重启服务即可恢复调用。该方案会扩大接口查询权限范围,存在一定安全风险,非特殊情况不推荐使用。

若后续调用时出现其他字段触发同类error-invalid-query报错,可按照相同逻辑处理:优先升级适配版本的依赖,或手动移除查询参数中未被白名单允许的字段即可。

内容的提问来源于stack exchange,提问作者user9961985

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:27:10