回答
在 Hamibot 中,脚本的获取与使用主要分为通过控制台/市场安装和通过 API 管理两种方式。以下是具体的操作流程和技术实现方案。
1. 脚本获取(下载/安装)
方式一:通过 Hamibot 控制台或市场
这是最常用的方式。你可以在 Hamibot 市场浏览公开脚本,点击“安装”或“添加”将脚本绑定到你的设备或账户下。安装后,脚本会出现在你的脚本列表中。
方式二:通过 API 创建开发脚本
如果你需要编程方式管理脚本,可以使用 API 创建开发脚本。
// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/devscripts', {
method: 'POST',
headers: {
authorization: '你的令牌(hmp 开头)',
},
body: JSON.stringify({ name: '脚本名字' }),
});
log(res.body.json());
2. 脚本使用(运行)
方式一:在设备上直接运行
在 Hamibot 手机助手或控制器中,找到已安装的脚本,点击“运行”按钮即可。你可以配置脚本变量并选择执行设备。
方式二:通过 API 远程运行
你可以调用 API 远程触发脚本在指定设备上运行。需要先获取脚本 ID 和设备 ID。
获取脚本列表:
// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/scripts', {
method: 'GET',
headers: {
authorization: '你的令牌(hmp 开头)',
},
});
log(res.body.json());
运行脚本:
调用运行接口时,需要指定设备信息。
// 文档地址 https://docs.hamibot.com/
http.request('https://api.hamibot.com/v1/scripts/脚本_id/run', {
method: 'POST',
contentType: 'application/json',
headers: {
authorization: '你的令牌(hmp 开头)',
},
body: JSON.stringify({
devices: [{ _id: 'a51d237e9af41ecc021c9ff6', name: '零号机' }],
}),
});
停止脚本:
如果需要停止正在运行的脚本,可以调用停止接口。
// 文档地址 https://docs.hamibot.com/
http.request('https://api.hamibot.com/v1/scripts/脚本_id/run', {
method: 'DELETE',
headers: {
authorization: '你的令牌(hmp 开头)',
},
});
3. 本地文件管理
在脚本开发过程中,你可能需要管理本地文件。Hamibot 提供了 files 模块来处理文件操作。
列出目录文件:
列出 sdcard 目录下所有文件和文件夹:
// 文档地址 https://docs.hamibot.com/
var arr = files.listDir('/sdcard/');
log(arr);
筛选特定文件:
列出脚本目录下所有 js 脚本文件:
// 文档地址 https://docs.hamibot.com/
var dir = '/sdcard/脚本/';
var jsFiles = files.listDir(dir, function (name) {
return name.endsWith('.js') && files.isFile(files.join(dir, name));
});
log(jsFiles);
文件读写:
使用 files.open 可以打开文件进行读写,支持只读 ("r")、只写 ("w")、附加 ("a") 等模式。
4. 注意事项
- 令牌安全:API 请求中的
authorization令牌(hmp 开头)涉及账户安全,请妥善保管,不要泄露。 - 代码兼容性:Hamibot 脚本运行环境基于 Rhino 1.7.15 JavaScript 引擎。编写脚本时请注意:
- 不要使用箭头函数(
=>)。 - 不要定义函数默认参数值。
- 建议使用
var声明变量。
- 不要使用箭头函数(
- 设备状态:远程运行脚本前,请确保目标设备已在线并连接到 Hamibot 服务。
如果你需要具体的脚本开发指导或遇到运行错误,可以检查日志输出或查阅相关 API 文档。
ℹ️ 本回答由 AI 生成,内容仅供参考