文件
Parlz/docs/doc_api_reference.php
2026-06-04 22:42:27 +08:00

707 行
28 KiB
PHP

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Parlz API 参考文档,详细介绍了所有API接口的使用方法和参数说明">
<title>Parlz API 参考文档</title>
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
</head>
<body>
<button class="theme-toggle-btn" id="theme-toggle-btn">
<i class="fas fa-moon"></i>
</button>
<?php include 'includes/navbar.php'; ?>
<script>
function initThemeToggle() {
const themeToggleBtn = document.getElementById('theme-toggle-btn');
const themeIcon = themeToggleBtn.querySelector('i');
// 从localStorage读取主题设置
const savedTheme = localStorage.getItem('theme');
if (savedTheme === 'dark') {
document.body.classList.add('dark-mode');
themeIcon.classList.remove('fa-moon');
themeIcon.classList.add('fa-sun');
}
// 点击切换主题
themeToggleBtn.addEventListener('click', function() {
document.body.classList.toggle('dark-mode');
const isDark = document.body.classList.contains('dark-mode');
if (isDark) {
themeIcon.classList.remove('fa-moon');
themeIcon.classList.add('fa-sun');
localStorage.setItem('theme', 'dark');
} else {
themeIcon.classList.remove('fa-sun');
themeIcon.classList.add('fa-moon');
localStorage.setItem('theme', 'light');
}
});
}
// 页面加载完成后初始化
window.addEventListener('DOMContentLoaded', initThemeToggle);
</script>
<div class="api-doc-container">
<div class="api-doc-header">
<h1>Parlz API 参考文档</h1>
<p>详细的API接口说明,帮助开发者集成Parlz的功能到自己的应用中</p>
</div>
<div class="api-section">
<h2>1. 概述</h2>
<p>Parlz API 提供了一系列接口,用于实现用户管理、消息发送、好友管理、群组管理等功能。所有API接口都返回JSON格式的数据,便于客户端处理。</p>
<h3>1.1 基础URL</h3>
<p>所有API请求的基础URL为:</p>
<div class="api-example">
<pre>https://chat.ecuil.com/api.php</pre>
</div>
<h3>1.2 请求方法</h3>
<p>API支持两种请求方法:</p>
<ul>
<li><strong>GET</strong>:用于获取数据</li>
<li><strong>POST</strong>:用于提交数据或执行操作</li>
</ul>
<h3>1.3 认证方式</h3>
<p>大部分API接口需要用户登录后才能访问,系统通过会话(Session)来验证用户身份。登录后,系统会在服务器端创建会话,并在客户端设置会话Cookie。</p>
<h3>1.4 响应格式</h3>
<p>所有API接口都返回JSON格式的响应,基本结构如下:</p>
<div class="api-example">
<h5>成功响应</h5>
<pre>{"success": true, "data": {...}}</pre>
<h5>失败响应</h5>
<pre>{"success": false, "message": "错误信息"}</pre>
</div>
</div>
<div class="api-section">
<h2>2. 用户管理</h2>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
getUserInfo
<span>获取用户信息</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">用户管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>string</td>
<td>是</td>
<td>用户名</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=getUserInfo" \
-d "username=testuser" \
-b "PHPSESSID=your_session_id"</pre>
</div>
<div class="api-response">
<h5>响应示例</h5>
<div class="api-example">
<pre>{"success": true, "user": {"id": "1", "username": "testuser", "avatar": "uploads/avatars/avatar.png", "bio": "用户简介", "online": true}}</pre>
</div>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X GET "https://chat.ecuil.com/api.php?action=getChatHistory&targetId=2&page=1&limit=20" \
-b "PHPSESSID=your_session_id"</pre>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=createGroup" \
-d "groupName=测试群组&memberIds[]=2&memberIds[]=3" \
-b "PHPSESSID=your_session_id"</pre>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=joinGroupByGroupId" \
-d "group_id=123456" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
changeUsername
<span>更改用户名</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">用户管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>newUsername</td>
<td>string</td>
<td>是</td>
<td>新用户名(2-20个字符)</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=changeUsername" \
-d "newUsername=new_test_user" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
changeBio
<span>更改用户简介</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">用户管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>newBio</td>
<td>string</td>
<td>否</td>
<td>新简介(不超过200个字符)</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=changeBio" \
-d "newBio=这是一个新的用户简介" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
changeAvatar
<span>修改头像</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">用户管理</span>
<span class="api-tag">文件上传</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>avatar</td>
<td>file</td>
<td>是</td>
<td>头像文件</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=changeAvatar" \
-F "avatar=@/path/to/avatar.jpg" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
</div>
<div class="api-section">
<h2>3. 好友管理</h2>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
addFriend
<span>添加好友</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">好友管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>username</td>
<td>string</td>
<td>是</td>
<td>好友用户名</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=addFriend" \
-d "username=friend1" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-get">GET</span>
getFriends
<span>获取好友列表</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">好友管理</span>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X GET "https://chat.ecuil.com/api.php?action=getFriends" \
-b "PHPSESSID=your_session_id"</pre>
</div>
<div class="api-response">
<h5>响应示例</h5>
<div class="api-example">
<pre>{"success": true, "friends": [{"id": "2", "username": "friend1", "avatar": "uploads/avatars/avatar.png", "online": true}, ...]}</pre>
</div>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-get">GET</span>
getFriendRequests
<span>获取好友请求列表</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">好友管理</span>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X GET "https://chat.ecuil.com/api.php?action=getFriendRequests" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
acceptFriendRequest
<span>接受好友请求</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">好友管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>requestId</td>
<td>string</td>
<td>是</td>
<td>请求ID</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=acceptFriendRequest" \
-d "requestId=1" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
</div>
<div class="api-section">
<h2>4. 消息管理</h2>
<div class="api-endpoint">
<h4>
<span class="api-method method-get">GET</span>
getChatHistory
<span>获取聊天历史</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">消息管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>targetId</td>
<td>string</td>
<td>是</td>
<td>目标用户ID或群组ID</td>
</tr>
<tr>
<td>page</td>
<td>integer</td>
<td>否</td>
<td>页码,默认1</td>
</tr>
<tr>
<td>limit</td>
<td>integer</td>
<td>否</td>
<td>每页条数,默认20</td>
</tr>
<tr>
<td>isGroup</td>
<td>boolean</td>
<td>否</td>
<td>是否是群组消息,默认false</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
sendMessage
<span>发送消息</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">消息管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>targetId</td>
<td>string</td>
<td>是</td>
<td>目标用户ID或群组ID</td>
</tr>
<tr>
<td>content</td>
<td>string</td>
<td>是</td>
<td>消息内容</td>
</tr>
<tr>
<td>isGroup</td>
<td>boolean</td>
<td>否</td>
<td>是否是群组消息,默认false</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=sendMessage" \
-d "targetId=2&content=Hello%20world&isGroup=false" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
sendImage
<span>发送图片</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">消息管理</span>
<span class="api-tag">文件上传</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>targetId</td>
<td>string</td>
<td>是</td>
<td>目标用户ID或群组ID</td>
</tr>
<tr>
<td>image</td>
<td>file</td>
<td>是</td>
<td>图片文件</td>
</tr>
<tr>
<td>isGroup</td>
<td>boolean</td>
<td>否</td>
<td>是否是群组消息,默认false</td>
</tr>
</tbody>
</table>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X POST "https://chat.ecuil.com/api.php?action=sendImage" \
-F "targetId=2" \
-F "image=@/path/to/image.jpg" \
-F "isGroup=false" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
</div>
<div class="api-section">
<h2>5. 群组管理</h2>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
createGroup
<span>创建群组</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">群组管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>groupName</td>
<td>string</td>
<td>是</td>
<td>群组名称</td>
</tr>
<tr>
<td>memberIds</td>
<td>array</td>
<td>否</td>
<td>成员ID数组</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-get">GET</span>
getUserGroups
<span>获取用户群组列表</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">群组管理</span>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X GET "https://chat.ecuil.com/api.php?action=getUserGroups" \
-b "PHPSESSID=your_session_id"</pre>
</div>
</div>
<div class="api-endpoint">
<h4>
<span class="api-method method-post">POST</span>
joinGroupByGroupId
<span>通过群号加入群组</span>
</h4>
<div class="api-tags">
<span class="api-tag">需要登录</span>
<span class="api-tag">群组管理</span>
</div>
<div class="api-params">
<h5>请求参数</h5>
<table>
<thead>
<tr>
<th>参数名</th>
<th>类型</th>
<th>必填</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>group_id</td>
<td>string</td>
<td>是</td>
<td>群号</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="api-section">
<h2>6. 其他接口</h2>
<div class="api-endpoint">
<h4>
<span class="api-method method-get">GET</span>
getIPLocation
<span>获取IP地理位置</span>
</h4>
<div class="api-tags">
<span class="api-tag">无需登录</span>
<span class="api-tag">工具</span>
</div>
<div class="api-example">
<h5>请求示例 (cURL)</h5>
<pre>curl -X GET "https://chat.ecuil.com/api.php?action=getIPLocation&ip=8.8.8.8"</pre>
</div>
<div class="api-response">
<h5>响应示例</h5>
<div class="api-example">
<pre>{"success": true, "location": "中国 广东 深圳", "ip": "120.24.78.176"}</pre>
</div>
</div>
</div>
</div>
<a href="index.php" class="back-link">
<i class="fas fa-arrow-left"></i> 返回文档中心
</a>
</div>
</body>
</html>