脚本发布,用户安装后,如果是免费的我是否可以随时不让用户使用?

已存档
ltknnk6lvw · 2 个月前
第 1 条补充
·
2 个月前

只要我提交新版本规则,用户就会自动更新吗?

第 2 条补充
·
2 个月前

我初始版本需要怎么写才能必须更新才能使用?

第 3 条补充
·
2 个月前

如果我的脚本下架,是否可以不让用户使用了?

第 4 条补充
·
2 个月前

如果使用付费服务,当用户到期的时候我脚本下架了,是否用户可以无法续费?

回答

Hamibot AI
1
· 2 个月前

根据 Hamibot 的脚本发布机制,免费用户的使用权限由脚本代码逻辑控制。你可以在脚本中加入以下逻辑来控制使用权限:

// 文档地址 https://docs.hamibot.com/
const { name: planName, onFreeTrial } = hamibot.plan;

// 检查是否允许使用
if (planName === '免费版' && !yourCustomCondition) {
    toast("当前版本已停止使用,请联系开发者");
    hamibot.exit();
}

// 你的脚本代码...

hamibot.exit();

开发者可以通过:

  1. 更新脚本代码加入限制逻辑
  2. 提交新版本审核通过后
  3. 用户更新到新版本时会自动应用新规则

注意:已安装旧版本的用户仍可继续使用未更新的旧版本脚本。若需要强制停止所有用户使用,需联系 Hamibot 官方处理。


补充回答 1

用户提交新版本后不会触发自动更新,需用户手动操作更新:

// 文档地址 https://docs.hamibot.com/
// 强制更新检测逻辑示例
const currentVersion = 2; // 当前最新版本号
if (typeof storage.get('installedVersion') === 'undefined') {
    storage.put('installedVersion', 1); // 初始化存储
}

if (storage.get('installedVersion') < currentVersion) {
    dialogs.build({
        title: '发现新版本',
        content: '请更新到最新版本继续使用',
        positive: '立即更新',
        negative: '退出'
    }).on('positive', () => {
        app.openUrl('https://hamibot.com/marketplace/your-script'); // 你的脚本市场地址
        hamibot.exit();
    }).show();
}

// 主业务代码...

hamibot.exit();

实现要点:

  1. 通过本地存储记录用户安装版本
  2. 每次启动检查版本号
  3. 发现旧版本时弹窗引导用户更新
  4. 用户必须手动前往市场更新脚本

注意:此逻辑需要从初始版本就内置在代码中才能生效,且旧版本用户若未更新仍可继续使用原有功能。


补充回答 2

在初始版本中必须内置强制更新检测机制,推荐这样编写基础框架:

// 文档地址 https://docs.hamibot.com/
const currentVersion = 1; // 初始版本号
const minAllowedVersion = 1; // 最低允许运行的版本号

// 初始化版本检测
if (typeof storage.get('appVersion') === 'undefined') {
    storage.put('appVersion', currentVersion);
} else {
    // 每次启动校验版本有效性
    if (storage.get('appVersion') < minAllowedVersion) {
        dialogs.build({
            title: '版本已过期',
            content: '请更新到最新版本',
            positive: '前往更新',
            negative: '退出'
        }).on('positive', () => {
            app.openUrl('https://hamibot.com/marketplace/YOUR_SCRIPT_ID');
            hamibot.exit();
        }).on('negative', () => {
            hamibot.exit();
        }).show();
        exit();
    }
}

// 主程序入口
toast("程序正常运行");
// 你的业务代码...

hamibot.exit();

关键实现逻辑:

  1. 版本存储初始化:使用storage.put()在首次运行时写入初始版本号
  2. 双版本控制
    • currentVersion标记脚本实际版本
    • minAllowedVersion控制最低可运行版本
  3. 更新策略
    • 当需要强制更新时,发布新版本时将minAllowedVersion设置为大于旧版本的值
    • 用户运行旧版本时会触发更新检测
  4. 阻断机制:检测到旧版本立即弹窗并退出脚本运行

更新操作流程:

  1. 开发者发布新版本时:
const currentVersion = 2; // 新版本号
const minAllowedVersion = 2; // 要求最低版本同步提升
  1. 用户旧版本启动时会因storage.get('appVersion') < minAllowedVersion触发更新流程
  2. 用户必须点击更新才能继续使用

注意:此方案要求从初始版本就必须包含该检测逻辑,且后续每个版本都要更新currentVersionminAllowedVersion值才能生效强制更新机制。


补充回答 3

根据 Hamibot 的机制,脚本下架本身不会直接影响已安装用户的使用。要实现下架后彻底禁用脚本,需要预先在代码中设计在线验证机制:

// 文档地址 https://docs.hamibot.com/
const SERVER_CHECK_URL = 'https://your-server.com/api/check'; // 你的验证接口

// 在线状态检测
threads.start(function() {
    try {
        const res = http.get(SERVER_CHECK_URL, {
            headers: { 'User-Agent': 'Hamibot-Script' }
        });
        if (res.statusCode !== 200 || res.body.string() !== 'active') {
            toast("脚本已停用");
            hamibot.exit();
        }
    } catch (e) {
        toast("服务不可用");
        hamibot.exit();
    }
});

// 主业务逻辑...

hamibot.exit();

实现强制停用需要:

  1. 部署验证服务:搭建可控制启停状态的 web 服务
  2. 验证逻辑
    • 每次启动脚本时检查服务端状态
    • 服务端返回非 active 状态时自动退出
  3. 容错处理
    • 添加网络请求超时机制(建议 5-10 秒)
    • 捕获网络异常情况强制退出

停用操作流程:

  1. 修改服务器接口返回inactive或其他非许可状态
  2. 所有用户再次运行脚本时会自动检测到服务不可用
  3. 执行hamibot.exit()终止脚本运行

注意:

  • 此方案需要额外维护服务器
  • 首次运行需要联网才能验证
  • 用户断网情况下会无法使用(根据业务需求可调整逻辑)

补充回答 4

当脚本下架后,用户续费流程会受到直接影响:

  1. 下架后的续费机制

    • 已订阅用户到期后无法通过常规渠道续费(脚本不再出现在市场)
    • 正在订阅中的用户可继续使用至当前周期结束
    • 到期后订阅自动终止且无法恢复
  2. 开发者注意事项

// 文档地址 https://docs.hamibot.com/
// 建议在下架前增加到期提醒
const subscriptionEndDate = new Date('2025-12-31'); // 替换为实际到期时间
if (new Date() > subscriptionEndDate) {
    dialogs.build({
        title: '服务终止通知',
        content: '本脚本已停止维护,请迁移到新版本',
        positive: '查看公告'
    }).on('positive', () => {
        app.openUrl('https://your-domain.com/announcement');
        hamibot.exit();
    }).show();
    exit();
}
  1. 推荐处理方案

    • 下架前30天通过脚本内置通知推送停服公告
    • 提供迁移指引(如新脚本的安装链接)
    • 在 Hamibot 脚本描述页更新停服说明
  2. 系统限制

    • 下架后所有关联的定价计划自动失效
    • 用户端的【续费】按钮会变为不可用状态
    • 历史订单保留但无法发起新支付

建议操作流程:

  1. 停服前15天:通过脚本弹窗/通知推送提醒
  2. 停服前7天:在脚本详情页添加停服倒计时
  3. 正式下架:关闭所有购买通道,保留已付费用户使用权至到期日

特殊情形处理:

  • 如需允许老用户续费,需保持脚本处于上架状态
  • 可联系 support@hamibot.com 申请特殊续费通道(需提供商业理由)
ℹ️ 本回答由 AI 生成,内容仅供参考