回答
Hamibot 脚本运行主要有两种方式:在控制台或 APP 界面手动运行,以及通过 API 接口自动触发运行。
1. 界面手动运行
在 Hamibot 控制台或手机 APP 中,找到对应的脚本,点击运行按钮即可在已绑定的设备上执行。这是最直接的调试和运行方式。
2. API 自动运行
如果你需要通过外部系统触发脚本,可以使用 HTTP API 接口。这种方式适合定时任务或事件驱动场景。
运行已发布脚本
接口地址:POST /v1/scripts/脚本_id/run
运行开发中脚本
接口地址:POST /v1/devscripts/开发脚本_id/run
请求参数
- devices: 数组类型,要执行脚本的设备列表。
- vars: 对象类型,可选,脚本配置变量,脚本内可通过
hamibot.env调用。 - Headers: 必须包含
Authorization,值为你的令牌(hmp 开头)。
代码示例
以下示例展示了如何在脚本中通过 http.request 触发另一个脚本的运行。请注意 JavaScript 引擎兼容性,避免使用箭头函数。
// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/scripts/脚本_id/run', {
method: 'POST',
headers: {
authorization: '你的令牌(hmp 开头)',
'Content-Type': 'application/json'
},
body: {
devices: ['设备 ID 1', '设备 ID 2'],
vars: {
key: 'value'
}
}
});
log(res.body.json());
注意事项
- 令牌安全:请求头中的 Authorization 令牌需要妥善保管,避免泄露。
- 设备状态:确保目标设备在线且已授权,否则脚本无法下发执行。
- 兼容性:编写脚本代码时,请使用标准 JavaScript 语法,不要使用箭头函数表达式或默认参数值,因为使用的 JavaScript 引擎是 Rhino 1.7.15。
- 通知监听:如果脚本依赖通知监听,需确保设备通知服务已运行,否则
events.observeNotification()会抛出异常。
通过上述方式,你可以灵活地控制脚本的执行时机和目标设备。
ℹ️ 本回答由 AI 生成,内容仅供参考