自动翻译本页面为自动翻译,英文原文为最终版本。阅读此页的英文版
托管你自己的机器人
Disband不托管或执行你的机器人。你可以在任何地方运行客户端,它使用机器人令牌通过长期调用网关与Disband通信。本页面涵盖了保持机器人在活着的实际方面。
在哪里运行它
任何可以发送HTTPS出站请求的机器都可用。由于网关是长时延迟(你的代码保持连接开放,Disband在事件到达时返回事件),你不需要公共地址、入站端口或websocket。
好的选择,最便宜的先:
| 主机 | 备注 |
|---|---|
| 笔记本电脑/台式机 | 非常适合当你在线时在线的个人机器人。 |
| 一个小型VPS(1 GB RAM) | ~4-6美元/月;JavaScript客户端几乎不需要任何东西。 |
| 云函数/工作者 | 如果平台允许持久进程,无服务器工作即可;客户端足够无状态,可以廉价地重新启动。 |
| 一个容器/翼龙 | 客户端没有运行时依赖项,因此任何映像都可用。 |
你实际上需要什么
- JavaScript:Node.js 18岁以上,或Deno,或Bun。零运行时依赖项。
- Python:Python 3.9+。仅限标准库(线程+
urllib)。
没有数据库、没有队列,也没有框架需要安装。
让它保持活力
网关会永远独自循环;它会自动重新连接并重试。三种东西往往会杀死真正的机器人:
**崩溃循环。**将客户端包裹在监督器中,并在失败时重新启动:
# systemd [Unit] Description=disband-bot After=network-online.target [Service] ExecStart=/usr/local/bin/node /opt/my-bot/index.js Restart=always RestartSec=3 Environment=DISBAND_BOT_TOKEN=… [Install] WantedBy=multi-user.target**过期的代币。**如果机器人被撤销(或邀请在被撤销之前过期 批准),网关API返回
401。处理它:清楚地记录并停止, 而不是永远重试。两个客户端都将此作为error事件呈现出来—— JavaScript的AuthError/ Python的AuthError——反之,循环会停止 敲打的。**静默配置漂移。**将令牌保存在环境变量或秘密中 存储,而不是在源中。如果你旋转代币,请重新启动进程 新的价值。
读取和写入数据
机器人只与作用域内的HTTP API交谈。要查询或持久化状态,请使用你已经运行的任何存储——文件、数据库、Redis——客户端并不在乎。
多服务器机器人
机器人可以被邀请到许多服务器。已批准的作用域是按服务器分开的,因此一个可以在任何地方读取消息的机器人,也只能在所有者授予messages.write的地方写入。如果行为需要根据服务器不同而有所不同,你的代码可以在message.server_id上分支。
进一步前进
- 有关确切的端点,请参阅**API 参考** 客户端使用——如果你想用另一种语言编写自己的客户端,这很有用。
- JavaScript和Python 参考页面包括所有方法和事件。
Disband