REST API 参考

示例中的 _id 需要替换成你自己的
示例中的 hmp_... 需要替换为自己的令牌 获取令牌

机器人

获取机器人列表

GET /v1/robots

示例

Hamibot 示例
// hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/robots', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/robots

响应

200 成功

{
  "count": 1,
  "items": [
    {
      "_id": "a51d237e9af41ecc021c9ff6",
      "online": true,
      "tags": ["tag1", "tag2"],
      "name": "零号机",
      "brand": "Xiaomi",
      "model": "MI 11"
    }
  ]
}

获取机器人

GET /v1/robots/{robotId}

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/robots/_id', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/robots/_id

响应

200 成功

{
  "_id": "a51d237e9af41ecc021c9ff6",
  "online": true,
  "tags": ["tag1", "tag2"],
  "name": "零号机",
  "brand": "Xiaomi",
  "model": "MI 11"
}

停止所有脚本

PUT /v1/robots/{robotId}/stop

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/robots/_id/stop', {
  method: 'PUT',
  headers: {
    authorization: 'token hmp_...',
  },
});
curl 示例
curl -X PUT -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/robots/_id/stop

响应

204 成功

消息推送

最低版本要求:Hamibot 1.2.2 前往下载
感谢 sl1097643327git 提交本功能
POST /v1/robots/{robotId}/messages

参数

名称类型描述
titlestring标题,最大长度 128
textstring消息内容,最大长度 512

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/robots/_id/messages', {
  method: 'POST',
  contentType: 'application/json',
  headers: {
    authorization: 'token hmp_...',
  },
  body: JSON.stringify({ title: '标题', text: '消息内容' }),
});
curl 示例
curl \
    -X POST \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    -d '{"title": "标题", "text": "消息内容"}' \
    https://api.hamibot.com/v1/robots/_id/messages

响应

204 成功


脚本

获取脚本列表

GET /v1/scripts

示例

Hamibot 示例
// hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/scripts', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/scripts

响应

200 成功

{
  "count": 1,
  "items": [
    {
      "_id": "bfe67d643ababe0ab6fda054",
      "slug": "FLZoI",
      "name": "你好世界",
      "version": "1.1.3"
    }
  ]
}

获取脚本

GET /v1/scripts/{scriptId}

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/scripts/_id', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/scripts/_id

响应

200 成功

{
  "_id": "bfe67d643ababe0ab6fda054",
  "slug": "FLZoI",
  "name": "你好世界",
  "version": "1.1.3"
}

运行脚本

POST /v1/scripts/{scriptId}/run

参数

名称类型描述
robotsarray要执行脚本的机器人
varsobject可选,脚本配置

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/scripts/_id/run', {
  method: 'POST',
  contentType: 'application/json',
  headers: {
    authorization: 'token hmp_...',
  },
  body: JSON.stringify({
    robots: [{ _id: 'a51d237e9af41ecc021c9ff6', name: '零号机' }],
  }),
});
curl 示例
curl \
    -X POST \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    -d '{"robots": [{"_id": "a51d237e9af41ecc021c9ff6", "name": "零号机"}]}' \
    https://api.hamibot.com/v1/scripts/_id/run

响应

204 成功

422 参数错误

停止脚本

DELETE /v1/scripts/{scriptId}/run

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/scripts/_id/run', {
  method: 'DELETE',
  contentType: 'application/json',
  headers: {
    authorization: 'token hmp_...',
  },
  body: JSON.stringify({
    robots: [{ _id: 'a51d237e9af41ecc021c9ff6', name: '零号机' }],
  }),
});
curl 示例
curl \
    -X DELETE \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    -d '{"robots": [{"_id": "a51d237e9af41ecc021c9ff6", "name": "零号机"}]}' \
    https://api.hamibot.com/v1/scripts/_id/run

响应

204 成功

删除脚本

DELETE /v1/scripts/{scriptId}

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/scripts/_id', {
  method: 'DELETE',
  headers: {
    authorization: 'token hmp_...',
  },
});
curl 示例
curl \
    -X DELETE \
    -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/scripts/_id

响应

204 成功

开发脚本

获取脚本列表

GET /v1/devscripts

示例

Hamibot 示例
// hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/devscripts', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/devscripts

响应

200 成功

{
  "count": 1,
  "items": [
    {
      "_id": "bfe67d643ababe0ab6fda054",
      "name": "你好世界"
    }
  ]
}

获取脚本

GET /v1/devscripts/{scriptId}

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/devscripts/_id', {
  method: 'GET',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/devscripts/_id

响应

200 成功

{
  "_id": "bfe67d643ababe0ab6fda054",
  "name": "你好世界"
}

运行脚本

POST /v1/devscripts/{scriptId}/run

参数

名称类型描述
robotsarray要执行脚本的机器人
varsobject可选,脚本配置

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/devscripts/_id/run', {
  method: 'POST',
  contentType: 'application/json',
  headers: {
    authorization: 'token hmp_...',
  },
  body: JSON.stringify({
    robots: [{ _id: 'a51d237e9af41ecc021c9ff6', name: '零号机' }],
  }),
});
curl 示例
curl \
    -X POST \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    -d '{"robots": [{"_id": "a51d237e9af41ecc021c9ff6", "name": "零号机"}]}' \
    https://api.hamibot.com/v1/devscripts/_id/run

响应

204 成功

422 参数错误

停止脚本

DELETE /v1/devscripts/{scriptId}/run

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
http.request('https://api.hamibot.com/v1/devscripts/_id/run', {
  method: 'DELETE',
  contentType: 'application/json',
  headers: {
    authorization: 'token hmp_...',
  },
  body: JSON.stringify({
    robots: [{ _id: 'a51d237e9af41ecc021c9ff6', name: '零号机' }],
  }),
});
curl 示例
curl \
    -X DELETE \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    -d '{"robots": [{"_id": "a51d237e9af41ecc021c9ff6", "name": "零号机"}]}' \
    https://api.hamibot.com/v1/devscripts/_id/run

响应

204 成功

创建脚本

POST /v1/devscripts

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/devscripts', {
  method: 'POST',
  headers: {
    authorization: 'token hmp_...',
  },
});
log(res.body.json());
curl 示例
curl \
    -X POST \
    -H "Authorization: token hmp_..." \
    https://api.hamibot.com/v1/devscripts

响应

201 成功

{
  "_id": "bfe67d643ababe0116fda052",
  "name": "未命名9527"
}

删除脚本

DELETE /v1/devscripts/{scriptId}

示例

Hamibot 示例
// _id 和 hmp_... 需要替换成自己的
var res = http.request('https://api.hamibot.com/v1/devscripts/_id', {
  method: 'DELETE',
  headers: {
    authorization: 'token hmp_...',
  },
});
curl 示例
curl \
    -X DELETE \
    -H "Authorization: token hmp_..." \
    -H "Content-Type: application/json" \
    https://api.hamibot.com/v1/devscripts/_id

响应

204 成功

修改脚本

PUT /v1/devscripts/{scriptId}/files

注意

  • 脚本和配置可同时上传,也可单独上传(最多可同时上传 2 个文件)
  • 文件大小不能超过 3Mb(以系统为准)
  • 配置文件是 JSON 数组,参见 配置脚本
  • 需要正确提供 MIME type,脚本 application/javascript,配置 application/json

示例

curl 示例
curl \
    -X PUT \
    -H "Authorization: token hmp_..." \
    -F "data=@index.js;type=application/javascript" \
    -F "data=@config.json;type=application/json" \
    https://api.hamibot.com/v1/devscripts/bfe67d643ababe0ab6fda054/files

响应

204 成功


消息推送

最低版本要求:Hamibot 1.2.2 下载最新版
GET /v1/message/send

参数

名称类型描述
tokenstring令牌 获取令牌
textstring消息内容,支持 Markdown,最大长度 2000,超出会被截断

机器人消息推送 的区别:

  1. 无需选择机器人,优先推送给 通知管理 中选择的机器人
  2. 控制台会收到通知,方便信息回看
  3. 消息支持 Markdown
  4. 没有消息长度限制(不会发送失败)
  5. 支持 GET 请求,易用性更佳(同时支持 POST 请求)

示例

Hamibot 示例
// hmp_... 需要替换成自己的
http.get('https://api.hamibot.com/v1/message/send?token=hmp_...&text=消息内容');
curl 示例
curl \
    https://api.hamibot.com/v1/message/send?token=hmp_...&text=消息内容

响应

204 成功