脚本的优惠码怎么查询

一勺料汁
3
· 3 小时前
第 1 条补充
·
3 小时前

提示message: 'Rate limit exceeded, retry in 860 ms

第 2 条补充
·
3 小时前

提示脚本不支持优惠码怎么回事

回答

Hamibot AI
1
· 3 小时前

你可以通过 Hamibot 的 API 接口查询脚本的优惠码列表。

使用以下 GET 请求获取指定脚本的优惠码信息:

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

参数说明:

  • 开发脚本_id:你在 Hamibot 平台创建并发布的脚本唯一 ID。
  • 你的令牌:以 hmp_ 开头的开发者令牌,可在 Hamibot 控制台 获取。

响应示例(成功时):

[
  {
    "_id": "587b2858b712a80bc3f161a6",
    "code": "XXXXXXXX",
    "percentOff": 20,
    "expiresAt": "2023-01-10 23:59:59",
    "name": "脚本名称",
    "url": "https://hamibot.com/marketplace/xxx"
  }
]

⚠️ 注意:该接口仅对已审核通过且设置了付费定价计划的脚本有效。

如需进一步操作(如创建或删除优惠码),可参考 开发者文档 - 优惠码管理


补充回答 1

你遇到的提示 Rate limit exceeded, retry in 860 ms 表示你的请求频率超过了 Hamibot API 的限流阈值。

原因

Hamibot 对 API 接口调用有频率限制,以防止滥用。当你在短时间内发送了过多请求(例如循环中频繁调用 http.request),就会触发限流机制,返回该错误。

解决方案

  1. 增加请求间隔:在每次请求之间加入适当的延迟,建议使用 sleep() 函数控制频率。

    // 文档地址 https://docs.hamibot.com/
    for (var i = 0; i < 10; i++) {
      var res = http.request('https://api.hamibot.com/v1/...', {
        method: 'GET',
        headers: {
          authorization: 'hmp_xxxxx',
        },
      });
      log(res.body.json());
      sleep(1000); // 每次请求后等待 1 秒,避免触发限流
    }
    
  2. 优化逻辑,减少不必要的请求

    • 避免在循环中重复查询相同数据。
    • 尽量批量处理或缓存结果。
  3. 捕获异常并重试(可选)
    虽然当前错误是 HTTP 请求级别的响应,但你可以根据状态码(如 429)判断是否需要延时重试。

    // 文档地址 https://docs.hamibot.com/
    function requestWithRetry(url, options, maxRetries = 3) {
      for (var i = 0; i <= maxRetries; i++) {
        try {
          var res = http.request(url, options);
          if (res.status !== 429) {
            return res;
          }
          log('请求过于频繁,正在重试... (' + i + ')');
        } catch (e) {
          log('请求失败:', e);
        }
        sleep(1000 * Math.pow(2, i)); // 指数退避
      }
      throw new Error('多次重试失败,请检查网络或降低请求频率');
    }
    

最佳实践建议

  • 单个脚本每秒请求数不要超过 1~2 次。
  • 使用定时任务时,合理设置执行周期,避免集中高并发访问。

遵循以上方法即可有效避免 Rate limit exceeded 错误。


补充回答 2

提示“脚本不支持优惠码”通常是因为你的脚本未满足创建和使用优惠码的前提条件。以下是具体原因和解决方法:

原因一:脚本未设置付费定价计划

优惠码仅适用于收费脚本,如果你的脚本是免费的,系统不会允许生成或使用优惠码。

✅ 解决方法:

  1. 登录 Hamibot 控制台
  2. 进入「开发者中心」→「我的脚本」。
  3. 找到对应脚本,点击「编辑发布信息」。
  4. 在「定价计划」中设置一个付费方案(如月付或买断)。
  5. 提交审核,待脚本重新上线后即可支持优惠码。

原因二:脚本尚未通过审核

只有已审核通过并上架市场的脚本才能使用优惠码功能。草稿状态、审核中或被拒绝的脚本均不支持。

✅ 解决方法:

  • 确保你提交的脚本符合 Hamibot 脚本发布规范
  • 完善脚本描述、截图、分类等信息以提高审核通过率。
  • 审核通过后,再尝试创建或查询优惠码。

原因三:API 调用方式错误

即使脚本符合条件,若调用 API 时使用的 开发脚本_id 或权限令牌有误,也可能返回类似提示。

✅ 检查项:

  • 使用的是正确的脚本 ID(不是实例 ID 或任务 ID)。
  • 请求头中的 authorization 是以 hmp_ 开头的有效开发者令牌。
  • 请求地址为:https://api.hamibot.com/v1/devscripts/{scriptId}/promocode

总结

要让脚本支持优惠码,必须同时满足:

  1. ✅ 脚本已上架市场;
  2. ✅ 设置了付费定价计划;
  3. ✅ 使用正确的 API 和权限进行操作。

如果不满足以上任一条件,就会提示“脚本不支持优惠码”。

如有疑问,可参考 开发者文档 - 优惠码管理 或联系官方支持。

ℹ️ 本回答由 AI 生成,内容仅供参考