手搓一个漂流瓶的 API。

最近在折腾自己的小云鲨 API 项目,手搓了一个漂流瓶 API,目前是 Beta 测试版,适配 QQ 机器人调用,这里把实现思路和说明分享给大家,也欢迎交流和提意见~

重要声明:
本版本为 Beta 测试版,可能存在不稳定、功能异常等情况,最好不要直接用于生产环境。
推荐使用场景:QQ 机器人功能开发、个人测试平台发布。后续正式版发布后,会修复已知问题并优化稳定性。

一、项目介绍

功能说明

这个漂流瓶 API 实现了基础的 “扔瓶子” 和 “捞瓶子” 逻辑,支持:

  • 文本内容漂流瓶发送

  • 图片附件携带(适配 QQ 机器人场景)

  • IP 访问频率限制(防刷屏)

  • 管理员后台审核机制

  • 基础 API Key 鉴权(可选)

适用场景

  • QQ 机器人 / 频道机器人互动功能

  • 个人 API 项目练手与展示

  • 小圈子内的匿名互动工具


二、实现思路

1. 核心接口逻辑

  • 扔瓶接口:校验 IP 频率 → 校验参数 → 存储到数据库(待审核 / 直接通过)

  • 捞瓶接口:随机从已通过的瓶子中返回一条,简单控制重复率

  • 后台管理:管理员可审核瓶子、查看数据、封禁 IP

2. 环境与安全

  • 运行环境:PHP 7.0+ + MySQL 5.7+

  • 安全处理:IP 限流、基础 SQL 防注入、参数校验

  • 隔离部署:推荐在独立的 PHP 隔离环境运行,避免与主业务环境混部



四、已知问题与后续计划

当前版本(Beta 1.0)限制

  • 暂不支持图片直传,仅支持图片 URL 携带

  • 审核功能需管理员手动操作,暂无自动过滤

  • 高频调用可能存在性能问题,不建议大流量使用

安装方法

这里宝塔为例

登录宝塔面板,进入【网站】→【添加站点】
填写信息:
域名:填写你要绑定的域名(如drift.yourdomain.com),无域名可直接用 IP + 端口
根目录:默认/www/wwwroot/你的域名,建议保持默认
PHP 版本:选择 PHP-7.4
数据库:选择MySQL,数据库名 / 用户名建议与站点同名,方便管理
点击【提交】,等待站点创建完成

步骤 2:上传源码文件
进入【网站】→ 找到刚创建的站点 → 点击【根目录】
点击【上传】,选择你的漂流瓶 API 源码压缩包,等待上传完成
右键压缩包 → 【解压到当前目录】,确保所有文件都解压在站点根目录(不要嵌套文件夹)
检查文件权限:给根目录设置权限755,config/、runtime/目录设置权限777(保证读写权限)

访问admin.php根据引导完成安装即可

欢迎来到我们的群聊下载(最近不知道我的123的网盘不知道为啥封了.)所以只能放这个群聊了

点击链接加入群聊【[QR丨Astrbot丨安卓手表]小云鲨社区交流群】: QQ群

我的API:小云鲨API