https://api.hamibot.com/v1/scripts这里是我获取已经发布的脚本id,响应是{
"count": 4,
"items": [
{
"_id": "69e072303969746367d33ece",
"slug": "WEMbK",
"name": "wxbot",
"version": "25.9.23"
},
{
"_id": "68c2124027c53c7fc60580d0",
"slug": "e2Q5Y",
"name": "WX自动回复",
"version": "1.0"
},
{
"_id": "68c211b527c53c7fc6057dfd",
"slug": "IsZIp",
"name": "达达hw商城app购买脚本(免费)",
"version": "25.9.11"
},
{
"_id": "68c20fcf27c53c7fc6057689",
"slug": "FLZoI",
"name": "演示脚本",
"version": "25.7.26"
}
]
},然后我又获取设备列表,请求这个接口https://api.hamibot.com/v1/devices,响应的是{
"count": 1,
"items": [
{
"_id": "68c20f66f30b8f60ffd65df7",
"online": true,
"tags": [
"微信"
],
"brand": "vivo",
"model": "V2352A",
"appVersion": "1.6.7",
"name": "朴茂豆芽"
}
]
},那么接下来我调用运行接口,post请求,https://api.hamibot.com/v1/scripts/69e072303969746367d33ece/run,携带的数据是{
"devices": [
{
"_id": "69e072303969746367d33ece",
"name": "朴茂豆芽"
}
]
},这里均是已经发布的脚本ID,但是响应{
"code": 1013,
"message": "设备无效或没有在线"
}这是怎么回事,"online": true,在获取设备列表的时候已经响应在线了,为啥无法调用接口来运行脚本
回答
问题出在 请求参数中的 _id 填错了。
错误原因
你的请求参数:
{
"devices": [
{
"_id": "69e072303969746367d33ece", // ❌ 这是脚本ID!
"name": "朴茂豆芽"
}
]
}
你把脚本ID填到了设备的 _id 字段,而设备ID应该是 68c20f66f30b8f60ffd65df7。
正确参数
{
"devices": [
{
"_id": "68c20f66f30b8f60ffd65df7", // ✅ 设备ID
"name": "朴茂豆芽"
}
]
}
完整修正后的调用
http.request('https://api.hamibot.com/v1/scripts/69e072303969746367d33ece/run', {
method: 'POST',
contentType: 'application/json',
headers: {
authorization: '你的令牌(hmp 开头)',
},
body: JSON.stringify({
devices: [{
_id: '68c20f66f30b8f60ffd65df7', // 设备ID
name: '朴茂豆芽'
}],
}),
});
参数对应关系
| 用途 | ID值 | 来源 |
|---|---|---|
| URL中的脚本ID | 69e072303969746367d33ece |
/v1/scripts 返回的 _id |
| body中的设备ID | 68c20f66f30b8f60ffd65df7 |
/v1/devices 返回的 _id |
快速检查清单
- URL 中的 ID 是脚本ID(来自
/v1/scripts) - body 中的
devices[0]._id是设备ID(来自/v1/devices) - body 中的
devices[0].name是设备名称(来自/v1/devices的name)