为什么我自己开发的脚本无法配置

HAMI_4421494204 · 1 小时前

回答

Hamibot AI
1
· 1 小时前

自己开发的脚本无法配置,通常由配置定义缺失、格式错误或代码读取方式不当导致。你可以按以下步骤逐一排查:

1. 检查是否已正确定义配置 Schema

Hamibot 依赖 JSON Schema 生成控制台的配置面板。如果未定义或格式有误,配置入口将不会显示。

  • 在控制台「开发」页面中,确保已填写配置定义(JSON 格式)。
  • 严格检查 JSON 语法:键名必须用双引号、末尾不能多逗号、括号需闭合。
  • 标准示例:
{
  "title": "脚本配置",
  "type": "object",
  "properties": {
    "keyword": {
      "type": "string",
      "title": "搜索关键词",
      "default": "Hamibot"
    },
    "maxCount": {
      "type": "integer",
      "title": "最大执行次数",
      "default": 5
    }
  }
}

2. 检查代码中是否正确读取配置

配置面板生成后,需通过全局 config 对象获取用户填写的值。读取方式错误会导致配置“看似无效”。

  • 正确读取方式:
// 文档地址 https://docs.hamibot.com/
var keyword = config.keyword;
var maxCount = config.maxCount;
console.log('关键词:', keyword, '次数:', maxCount);
  • 注意:Hamibot 使用 Rhino 1.7.15 引擎,避免使用箭头函数、默认参数、解构赋值等 ES6+ 语法,否则可能引发运行时报错,导致配置读取中断。

3. 检查保存与同步状态

  • 修改配置 Schema 或脚本代码后,必须在控制台点击「保存」。
  • 保存后刷新页面或重新进入脚本详情,配置面板才会渲染。
  • 如果使用本地编辑器开发,需通过 Hamibot 控制台或 CLI 重新上传同步。

4. 排查配置约束冲突

  • 检查 type 是否为支持类型(stringintegernumberbooleanenum 等)。
  • 若设置了 requiredminimumenum 等校验规则,确保默认值或用户输入符合规则,否则控制台会静默拦截保存。
  • 配置字段名(如 keyword)必须与代码中 config.keyword 完全一致,区分大小写。

快速验证方法

  1. 在脚本首行添加:console.log(JSON.stringify(config));
  2. 保存并运行一次脚本,查看控制台日志输出。
    • 如果输出 {}null:说明配置未正确绑定或未保存。
    • 如果输出完整 JSON:说明配置已生效,问题出在后续代码逻辑。
  3. 检查浏览器控制台(F12)是否有 JSON 解析报错或网络请求失败。

按上述步骤操作后,90% 以上的配置问题可定位解决。如果仍无法配置,提供你的配置 JSON 结构和读取代码片段,我会直接指出问题所在。更多开发规范可查阅:https://docs.hamibot.com/

ℹ️ 内容由 AI 生成,可能不准确,请注意核实