另外想要通过api来调用自己的脚本,这个脚本必须是需要先发布嘛,我没有发布的脚本在调用的时候一直提示脚本未存在

HAMI_2991428385 · 2 天前
第 1 条补充
·
2 天前

那所有人都可以发布脚本还是必须要认证开发者才能发布脚本呀,我看了一下认证开发者必须要交钱

第 2 条补充
·
24 小时前

另外我在调用已经发布的脚本,但是一直提示我无效,我先获取到我的脚本https://api.hamibot.com/v1/devscripts,响应数据是{
"count": 1,
"items": [
{
"_id": "68c26ccf27c53c7fc60885fa",
"name": "wxbot"
}
]
}有这个脚本的,然后获取设备列表请求https://api.hamibot.com/v1/devices,响应的数据是{
"count": 1,
"items": [
{
"_id": "68c20f66f30b8f60ffd65df7",
"online": true,
"tags": [
"微信"
],
"brand": "vivo",
"model": "V2352A",
"appVersion": "1.6.7",
"name": "朴茂豆芽"
}
]
}也就是说明当前设备是在线的这么一个状态,然后我调用运行脚本接口https://api.hamibot.com/v1/scripts/68c26ccf27c53c7fc60885fa/run是post请求,携带参数是{
"devices": [
{
"_id": "68c20f66f30b8f60ffd65df7",
"name": "wxbot"
}
]
},但是提示我{
"code": 1000,
"message": "脚本不存在"
},我想知道运行脚本到底需要什么参数,另外参数从哪里获取呢

回答

Hamibot AI
1
· 2 天前

是的,必须先发布脚本才能通过 API 调用。

Hamibot 的 API(如 POST /v1/devscripts/脚本_id/run只能调用已发布的脚本。未发布的脚本属于“开发中”状态,仅能在控制台编辑和本地运行,无法通过 API 访问。


正确操作流程:

  1. 发布脚本

    • 进入脚本控制台 → 点击脚本右侧「更多」→「发布」
    • 填写脚本名称(如“我的API脚本”)→ 确认发布
    • 发布后会生成一个正式脚本 ID(非开发脚本 ID)
  2. 使用正式脚本 ID 调用 API

    curl -X POST \
      -H "Authorization: hmp_xxx" \
      https://api.hamibot.com/v1/scripts/正式脚本_ID/run
    

⚠️ 注意:

  • API 文档中的 /v1/devscripts/... 仅用于开发脚本的调试(如停止、运行),但运行仍需脚本已发布
  • 实际调用时应使用 /v1/scripts/... 接口(对应已发布脚本)

验证是否已发布:

  • 已发布脚本会在 脚本市场 或「我的脚本」中显示为独立条目
  • 开发脚本(未发布)仅在「脚本控制台」可见,且 ID 以 dev_ 开头

发布后即可正常通过 API 触发执行。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实
Hamibot AI
1
· 2 天前

所有人都可以发布脚本,无需认证开发者,也无需付费。


✅ 发布脚本的权限说明:

  • 任何注册用户均可在 脚本控制台 创建并发布脚本
  • 发布操作完全免费,不收取任何费用
  • 发布后的脚本默认为私有,仅你自己可见和使用

🔒 什么情况下需要「认证开发者」?

只有当你想将脚本上架到公开市场(让其他人搜索、购买)时,才需要:

  1. 完成开发者认证
  2. 支付 99 元认证费(一次性)

⚠️ 注意:

  • 私有脚本(自己用)→ 不需要认证
  • 公开售卖脚本 → 必须认证

📌 总结:

场景 是否需要认证 是否收费
自己写脚本自己用(私有) ❌ 不需要 ❌ 免费
发布到市场卖给他人 ✅ 需要 ✅ 99 元认证费

你完全可以免费发布私有脚本并通过 API 调用,无需任何认证。

ℹ️ 内容由 AI 生成,可能不准确,请注意核实
Hamibot AI
1
· 24 小时前

问题出在 API 端点选择错误。你用的是开发脚本接口获取的 ID,但运行时需要区分开发脚本已发布脚本两种不同的端点。

关键区别

类型 获取接口 运行接口
开发脚本 (devscripts) GET /v1/devscripts POST /v1/devscripts/{id}/run
已发布脚本 (scripts) GET /v1/scripts POST /v1/scripts/{id}/run

你的问题

你从 /v1/devscripts 获取的 _id: 68c26ccf27c53c7fc60885fa开发脚本 ID,但调用时用了 /v1/scripts/.../run,这是已发布脚本的运行接口,所以提示"脚本不存在"。

正确调用方式

方式一:运行开发脚本(推荐测试用)

http.request('https://api.hamibot.com/v1/devscripts/68c26ccf27c53c7fc60885fa/run', {
    method: 'POST',
    contentType: 'application/json',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
    body: JSON.stringify({
        devices: [{
            _id: '68c20f66f30b8f60ffd65df7',
            name: '朴茂豆芽'
        }],
    }),
});

方式二:先发布脚本,再运行已发布版本

// 1. 先获取已发布脚本列表
// GET https://api.hamibot.com/v1/scripts

// 2. 用返回的 _id 调用运行接口
http.request('https://api.hamibot.com/v1/scripts/已发布脚本_id/run', {
    method: 'POST',
    contentType: 'application/json',
    headers: {
        authorization: '你的令牌(hmp 开头)',
    },
    body: JSON.stringify({
        devices: [{
            _id: '68c20f66f30b8f60ffd65df7',
            name: '朴茂豆芽'
        }],
    }),
});

参数说明

参数 来源 说明
脚本_id /v1/devscripts/v1/scripts 开发脚本用 devscripts 接口,已发布用 scripts 接口
devices._id /v1/devices 设备的 _id 字段
devices.name /v1/devices 设备的 name 字段(可选,建议填写)
authorization 控制台 → 设置 → 开发者令牌 hmp_ 开头的令牌

修正你的代码

把 URL 从:

https://api.hamibot.com/v1/scripts/68c26ccf27c53c7fc60885fa/run

改为:

https://api.hamibot.com/v1/devscripts/68c26ccf27c53c7fc60885fa/run

同时设备 name 也建议修正为实际设备名 "朴茂豆芽" 而不是脚本名 "wxbot"

参考文档:https://docs.hamibot.com/

ℹ️ 内容由 AI 生成,可能不准确,请注意核实