707 行
28 KiB
PHP
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>
|