定制版如何使用脚本api?

weiming81_G2oR · 3 小时前
第 1 条补充
·
3 小时前

我说的是专属版,专属版的开发脚本根本没有copy id的功能

回答

Hamibot AI
1
· 3 小时前

Hamibot 脚本 API 的使用主要基于 HTTP 请求,通过特定的接口端点和授权令牌进行交互。以下是核心使用方法和常见接口说明。

1. 授权认证

所有 API 请求都需要在 Header 中包含授权信息。

  • Header 键: Authorization
  • Header 值: 你的令牌(hmp 开头)

2. 常用接口说明

脚本管理 (Scripts)

  • 获取脚本信息: GET /v1/scripts/脚本_id
  • 运行脚本: POST /v1/scripts/脚本_id/run
    • 支持指定设备列表和脚本配置变量。
  • 停止脚本: DELETE /v1/scripts/脚本_id/run

开发脚本 (DevScripts)

  • 创建开发脚本: POST /v1/devscripts
  • 删除开发脚本: DELETE /v1/devscripts/开发脚本_id
  • 生成优惠码: POST /v1/devscripts/开发脚本_id/promocode

3. 代码示例

在脚本环境中调用 API 时,需注意 JavaScript 引擎兼容性(使用 var,避免箭头函数)。以下示例展示了如何运行脚本和创建开发脚本。

运行脚本示例:

// 文档地址 https://docs.hamibot.com/
var res = 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: '零号机' }],
    }),
});
log(res.body.json());

创建开发脚本示例:

// 文档地址 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());

获取脚本信息示例:

// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/scripts/脚本_id', {
    method: 'GET',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
});
log(res.body.json());

4. 注意事项

  • 令牌安全: 令牌(hmp 开头)具有权限,请妥善保管,不要泄露。
  • 兼容性: 脚本运行环境基于 Rhino 1.7.15,编写代码时避免使用 ES6+ 新特性(如箭头函数、默认参数等)。
  • 响应处理: 成功响应通常返回 200、201 或 204 状态码,失败时请检查参数是否正确(如 422 参数错误)。

如需进一步了解具体接口参数或返回值结构,可参考官方文档。


补充回答 1

专属版界面操作可能存在差异,如果无法通过界面复制脚本 ID,可以直接通过 API 获取脚本列表来查找 ID。

获取脚本 ID 方法

调用获取开发脚本列表接口,响应内容中会包含每个脚本的 _id 字段,该字段即为脚本 ID。

接口地址GET /v1/devscripts

代码示例

// 文档地址 https://docs.hamibot.com/
var res = http.request('https://api.hamibot.com/v1/devscripts', {
    method: 'GET',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
});
log(res.body.json());

响应说明
成功响应后,返回的 JSON 数据中 items 数组包含脚本信息。找到目标脚本名称对应的 _id 值,例如:

{
    "count": 1,
    "items": [
        {
            "_id": "bfe67d643ababe0ab6fda054",
            "name": "演示脚本"
        }
    ]
}

上述示例中的 bfe67d643ababe0ab6fda054 即为脚本 ID。

后续 API 使用

获取到脚本 ID 后,即可在后续接口调用中替换使用。例如生成优惠码接口:
POST /v1/devscripts/开发脚本_id/promocode

将 URL 中的 开发脚本_id 替换为上面获取到的 _id 值即可。

注意事项

  • 令牌获取:需要在账户设置中生成 API 令牌(hmp 开头),获取令牌
  • 脚本入口:开发脚本管理入口位于 开发 页面。
  • 代码兼容性:脚本运行环境基于 Rhino 1.7.15,编写代码时使用 var 定义变量,避免使用箭头函数等 ES6 新特性。
ℹ️ 本回答由 AI 生成,内容仅供参考