自定义API
这里是 倾慕慕官机平台 的全站详细教程。教程按实际使用顺序编写,从账号登录、后台设置、机器人管理,到可视化工作流、节点、变量、按钮、排错全部覆盖。
自定义API
自定义API功能允许你创建、管理和分享自己的API指令,无需编写代码即可让机器人调用外部接口,并支持Markdown模板和QQ原生按钮。
入口
进入后台 → 自定义API管理,或者直接打开 /custom_api_manager.php。
API 列表管理
| 功能 | 说明 |
|---|---|
| 新增API | 填写指令名称、功能指令、API地址、发送类型等信息创建新API。 |
| 编辑API | 点击左侧列表中的API,右侧显示详情,点击编辑按钮弹出编辑窗口修改。 |
| 删除API | 在编辑弹窗底部点击红色删除按钮,确认后删除。 |
| 分类筛选 | 顶部胶囊标签可按分类筛选API列表。 |
| 所属分类 | 可新建或选择已有分类,方便管理。 |
核心配置字段
| 字段 | 说明 |
|---|---|
| 指令名称 | API的名称标识,如"今日天气"。 |
| 功能指令 | 机器人在QQ中响应的触发指令,如 /天气。 |
| API地址 | 要调用的外部接口URL。支持 {参数}、{参数1} 变量。 |
| 触发模式 | 包含匹配、前缀匹配、精确匹配。 |
| 发送类型 | 文本、Markdown、图片、语音等。 |
| 请求方式 | GET 或 POST。 |
| 请求头 | 接口需要的自定义请求头,如 Authorization。 |
| 请求参数 | POST 时需要传递的参数。 |
| 消息模板 | 自定义回复格式,支持变量。留空则使用默认模板。 |
Markdown 模板
API支持Markdown格式回复。你可以在"Markdown内容"区域编写模板,系统会在API响应数据中提取变量进行替换。
模板语法
| 语法 | 说明 | 示例 |
|---|---|---|
{json.data.field} | 读取JSON响应中的字段 | {json.data.name} |
{json.data.list.0.title} | 读取数组指定索引的字段 | {json.data.list.0.title} |
{#each json.data.list}...{/each} | 遍历数组 | 循环输出列表项 |
{index} | each循环中的序号(从0开始) | 0, 1, 2... |
{参数} | 用户输入的完整参数 | 用户发"天气 北京",{参数}=北京 |
{result} | API返回的完整原始数据 | 显示全部JSON |
数据预处理
当API返回的数据中包含日期字段(如 task_list 数组中有 date 字段),系统会自动按日期分组,生成以下额外变量:
| 变量 | 说明 |
|---|---|
{json.data.next_task_list} | 第二天的任务列表 |
{json.data.today_task_list} | 第一天的任务列表 |
{json.data.next_date} | 第二天日期 |
{json.data.today_date} | 第一天日期 |
模板快速选择
页面提供预设模板如"每日任务"、"查询结果"、"资讯列表"等,点击即可快速套用。
AI 帮写模板
测试API成功后,点击响应区域右上角的"AI 帮写"按钮,输入你的需求描述(如"用列表展示明天任务"),AI会自动生成对应的Markdown模板和按钮配置。生成后点击"应用"即可填入页面。
QQ 原生按钮
支持在Markdown消息下方配置QQ原生按钮(Keyboard)。
使用方式
- 在按钮编辑区点击"添加按钮行"新增一行。
- 点击行内的"+ 添加按钮"添加按钮。
- 点击按钮本身弹出编辑弹窗配置按钮属性。
- 支持最多5行,每行最多5个按钮。
按钮字段说明
| 字段 | 说明 |
|---|---|
| 按钮ID | 按钮唯一标识。 |
| 按钮文字 | 显示在按钮上的文字。 |
| 点击后文字 | 点击后按钮上显示的文字。 |
| 按钮类型 | 指令(发指令)、跳转链接(打开URL)、回调(传数据)。 |
| 指令内容/数据 | 类型为指令时填指令内容,回调时填回调数据。 |
| 按钮样式 | 0灰色线框、1蓝色线框。 |
| 权限类型 | 所有人、指定用户、指定身份组、仅管理员。选择"所有人"时自动隐藏指定用户和身份组字段。 |
| 指定用户ID | 权限为指定用户时填写。 |
| 指定身份组ID | 权限为指定身份组时填写。 |
| 回复模式 | 是否以回复形式发送点击内容。 |
| Enter自动发送 | 点击后是否自动发送。 |
| 不兼容提示 | 按钮不兼容时显示的提示文字。 |
| 点击次数限制 | 限制按钮可点击总次数。 |
| 显示频道列表 | 开启后点击显示频道选择列表。 |
| 自动发送 | 点击后立即发送。 |
测试API
- 填写API地址和相关配置后,点击"测试 API"绿色按钮。
- 系统会发送请求并显示返回的JSON数据。
- 测试成功后,可点击"AI 帮写"生成模板。
- 确认无误后点击"保存 API"提交。
分享功能
你可以将配置好的API分享给站内其他用户使用。
分享单个API
- 在编辑API时,开启"分享到平台"开关。
- 其他用户在"浏览共享"中即可看到并导入该API。
- 你可以随时取消分享,已导入的用户不受影响。
分享整个分类
- 在分类输入框旁边点击"分享整类"按钮。
- 该分类下所有API都会被标记为分享状态。
- 同样可以一键取消整类分享。
浏览与导入
- 点击顶栏"浏览共享"按钮,弹出共享API浏览窗口。
- 可按分类筛选或搜索关键词。
- 点击"导入"按钮即可将他人分享的API复制到自己的列表中。
- 已导入过的API会显示"已导入"标签,不可重复导入。
按钮模板管理
访问 /keyboard_templates.php 可以管理可复用的按钮模板,方便在不同API之间共用按钮配置。
常见问题
为什么API列表一直显示加载中?
检查浏览器控制台是否有JS报错,尝试Ctrl+F5强制刷新。如果仍不行,可能是PHP脚本有语法错误或数据库连接问题。
为什么设置了按钮但发出来没有按钮?
检查keyboard_json格式是否正确,确认API的发送类型支持Markdown且按钮配置已保存到数据库。
为什么保存后测试还是旧内容?
检查数据库中是否有多个相同指令的API,系统可能匹配到了旧的API。删除重复项后重试。
为什么AI帮写生成的结果是空的?
AI模型可能进入了深度思考模式返回了空content。可重新生成一次,或检查API测试数据是否包含乱码字符。