# 115云盘openapi **Repository Path**: au5110/115-cloud-disk-openapi ## Basic Information - **Project Name**: 115云盘openapi - **Description**: 11232131232132131231 - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 115云盘开放平台PHP SDK 本SDK提供了115云盘开放平台的PHP语言实现,支持授权、用户信息获取、文件管理、上传下载、离线下载等功能。 ## 目录结构 ``` ├── SDK.php # 核心SDK文件 ├── demo.php # 使用示例 └── README.md # 本说明文件 ``` ## 安装方法 1. 下载SDK文件到您的项目目录 2. 在需要使用的文件中引入SDK: ```php require_once 'SDK.php'; ``` ## 快速开始 ### 1. 初始化SDK ```php // 配置信息 $app_id = 'YOUR_APP_ID'; // 替换为你的APP ID $app_key = 'YOUR_APP_SECRET'; // 替换为你的APP Secret $access_token = 'YOUR_ACCESS_TOKEN'; // 替换为获取到的access_token // 初始化SDK $sdk = new SDK($app_id, $app_key, $access_token); ``` ### 2. 授权流程 ```php // 1. 获取授权URL $redirect_uri = 'https://your-redirect-url.com/callback'; $state = uniqid(); // 随机值,防止CSRF攻击 $authorize_url = $sdk->getAuthorizeUrl($redirect_uri, $state); // 2. 用户授权后,从回调地址获取code参数 // $code = $_GET['code']; // 3. 使用code换取access_token // $response = $sdk->authCodeToToken($code, $redirect_uri); // $access_token = $response['data']['access_token']; // $sdk->setAccessToken($access_token); // 4. 刷新access_token(当token过期时) // $refresh_token = $response['data']['refresh_token']; // $refresh_response = $sdk->refreshToken($refresh_token); // $new_access_token = $refresh_response['data']['access_token']; // $sdk->setAccessToken($new_access_token); ``` ### 3. 获取用户信息 ```php try { $user_info = $sdk->getUserInfo(); if ($user_info['state']) { echo "用户ID: {$user_info['data']['user_id']}\n"; echo "用户名称: {$user_info['data']['user_name']}\n"; echo "总空间: {$user_info['data']['rt_space_info']['all_total']['size_format']}\n"; echo "剩余空间: {$user_info['data']['rt_space_info']['all_remain']['size_format']}\n"; echo "已使用空间: {$user_info['data']['rt_space_info']['all_use']['size_format']}\n"; echo "VIP等级: {$user_info['data']['vip_info']['level_name']}\n"; echo "VIP过期时间: " . date('Y-m-d H:i:s', $user_info['data']['vip_info']['expire']) . "\n"; } else { echo "获取用户信息失败: {$user_info['message']}\n"; } } catch (Exception $e) { echo "错误: {$e->getMessage()}\n"; } ``` ## 核心功能 ### 1. 授权相关 - `getAuthorizeUrl($redirect_uri, $state)` - 获取授权URL - `authCodeToToken($code, $redirect_uri)` - 用授权码换取access_token - `refreshToken($refresh_token)` - 刷新access_token ### 2. 用户信息 - `getUserInfo()` - 获取用户空间和VIP信息 ### 3. 上传相关 - `getUploadToken()` - 获取上传凭证 - `uploadInit($file_name, $file_size, $target, $fileid, $preid = '', $pick_code = '', $topupload = -1, $sign_key = '', $sign_val = '')` - 文件上传初始化 - `uploadResume($file_size, $target, $fileid, $pick_code)` - 断点续传 ### 4. 文件管理 - `folderAdd($pid, $file_name)` - 新建文件夹 - `getFiles($cid = '', $type = '', $limit = 20, $offset = 0, $suffix = '', $asc = '', $o = '', $custom_order = '', $stdir = '', $star = '', $cur = '', $show_dir = 0)` - 获取文件列表 - `getFolderInfo($file_id = '', $path = '')` - 获取文件(夹)详情 - `searchFiles($search_value, $limit = 20, $offset = 0, $file_label = '', $cid = '', $gte_day = '', $lte_day = '', $fc = '', $type = '', $suffix = '')` - 文件搜索 - `copyFiles($pid, $file_id, $nodupli = 0)` - 批量复制文件 - `moveFiles($file_ids, $to_cid)` - 批量移动文件 - `updateFile($file_id, $file_name = '', $star = '')` - 更新文件(夹)信息 - `deleteFiles($file_ids, $parent_id = '')` - 批量删除文件(夹) ### 5. 回收站 - `getRecycledFiles($limit = 30, $offset = 0)` - 获取回收站列表 - `revertRecycledFiles($tid)` - 还原回收站文件(夹) - `deleteRecycledFiles($tid = '')` - 删除/清空回收站 ### 6. 下载与播放 - `getDownloadUrl($pick_code)` - 获取文件下载地址 - `getVideoPlayUrl($pick_code)` - 获取视频在线播放地址 ### 7. 离线下载 - `parseTorrent($torrent_sha1, $pick_code)` - 解析BT种子 - `getOfflineTaskList($page = 1)` - 获取用户云下载任务列表 - `getOfflineQuotaInfo()` - 获取云下载配额信息 - `clearOfflineTasks($flag)` - 清空云下载任务 - `addOfflineTaskUrls($urls, $wp_path_id = '0')` - 添加云下载链接任务 - `deleteOfflineTask($info_hash, $del_source_file = 0)` - 删除用户云下载任务 - `addOfflineTaskBt($info_hash, $wanted, $save_path, $torrent_sha1, $pick_code, $wp_path_id = '')` - 添加云下载BT任务 ## 详细API说明 ### 1. 授权相关 #### getAuthorizeUrl - **参数**: - `$redirect_uri`: 授权成功后重定向地址 - `$state`: 随机值,防止CSRF攻击 - **返回值**: 授权URL字符串 #### authCodeToToken - **参数**: - `$code`: 授权码 - `$redirect_uri`: 与授权时使用的redirect_uri一致 - **返回值**: 包含access_token等信息的数组 #### refreshToken - **参数**: - `$refresh_token`: 刷新令牌 - **返回值**: 包含新的access_token等信息的数组 ### 2. 用户信息 #### getUserInfo - **参数**: 无 - **返回值**: 用户空间和VIP信息数组 ### 3. 上传相关 #### getUploadToken - **参数**: 无 - **返回值**: 上传凭证信息数组 #### uploadInit - **参数**: - `$file_name`: 文件名 - `$file_size`: 文件大小(字节) - `$target`: 文件上传目标约定 - `$fileid`: 文件sha1值 - `$preid`: 文件前128Ksha1 - `$pick_code`: 上传任务key - `$topupload`: 上传调度文件类型调度标记 - `$sign_key`: 二次认证需要 - `$sign_val`: 二次认证需要(大写) - **返回值**: 上传初始化结果数组 #### uploadResume - **参数**: - `$file_size`: 文件大小(字节) - `$target`: 文件上传目标约定 - `$fileid`: 文件sha1值 - `$pick_code`: 上传任务key - **返回值**: 断点续传结果数组 ### 4. 文件管理 #### folderAdd - **参数**: - `$pid`: 新建文件夹所在的父目录ID (根目录的ID为0) - `$file_name`: 新建文件夹名称 - **返回值**: 新建文件夹结果数组 #### getFiles - **参数**: - `$cid`: 目录ID,对应parent_id - `$type`: 文件类型;1.文档;2.图片;3.音乐;4.视频;5.压缩;6.应用;7.书籍 - `$limit`: 查询数量,默认20,最大1150 - `$offset`: 查询起始位,默认0 - `$suffix`: 文件后缀名 - `$asc`: 排序,1:升序 0:降序 - `$o`: 排序字段,file_name:文件名 file_size:文件大小 user_utime:更新时间 file_type 文件类型 - `$custom_order`: 是否使用记忆排序。1 使用自定义排序,不使用记忆排序,0 使用记忆排序,自定义排序失效,2自定义排序,非文件夹置顶 - `$stdir`: 筛选文件时, 是否显示文件夹;1:要展示文件夹 0不展示 - `$star`: 筛选星标文件,1:是 0全部 - `$cur`: 是否只显示当前文件夹内文件 - `$show_dir`: 是否显示目录;0 或 1,默认为0 - **返回值**: 文件列表结果数组 #### getFolderInfo - **参数**: - `$file_id`: 文件(夹)ID - `$path`: 文件路径 - **返回值**: 文件(夹)详情数组 #### searchFiles - **参数**: - `$search_value`: 查找关键字 - `$limit`: 单页记录数,默认20,offset+limit最大不超过10000 - `$offset`: 数据显示偏移量 - `$file_label`: 支持文件标签搜索 - `$cid`: 目标目录cid=-1时,表示不返回列表任何内容 - `$gte_day`: 搜索结果匹配的开始时间;格式:2020-11-19 - `$lte_day`: 搜索结果匹配的结束时间;格式:2020-11-20 - `$fc`: 只显示文件或文件夹。1 只显示文件夹,2 只显示文件 - `$type`: 一级筛选大分类,1:文档,2:图片,3:音乐,4:视频,5:压缩包,6:应用 - `$suffix`: 一级筛选选其他时填写的后缀名 - **返回值**: 搜索结果数组 #### copyFiles - **参数**: - `$pid`: 目标目录,即所需移动到的目录 - `$file_id`: 所复制的文件和目录ID,多个文件和目录请以 , 隔开 - `$nodupli`: 复制的文件在目标目录是否允许重复,默认0:0:可以;1:不可以 - **返回值**: 复制结果数组 #### moveFiles - **参数**: - `$file_ids`: 需要移动的文件(夹)ID,多个ID以 , 隔开 - `$to_cid`: 要移动所在的目录ID,根目录为0 - **返回值**: 移动结果数组 #### updateFile - **参数**: - `$file_id`: 需要更改的文件(夹)ID - `$file_name`: 新的文件(夹)名字 - `$star`: 是否星标;1:星标;0;取消星标 - **返回值**: 更新结果数组 #### deleteFiles - **参数**: - `$file_ids`: 需要删除的文件(夹)ID,多个ID以 , 隔开 - `$parent_id`: 删除的文件(夹)ID所在的父目录ID - **返回值**: 删除结果数组 ### 5. 回收站 #### getRecycledFiles - **参数**: - `$limit`: 单页记录数,int,默认30,最大200 - `$offset`: 数据显示偏移量 - **返回值**: 回收站列表结果数组 #### revertRecycledFiles - **参数**: - `$tid`: 需要还原的ID,可多个,用半角逗号分开,最多1150个 - **返回值**: 还原结果数组 #### deleteRecycledFiles - **参数**: - `$tid`: 需要删除的文件的Id,如若不传就是清空回收站(最多支持1150个) - **返回值**: 删除结果数组 ### 6. 下载与播放 #### getDownloadUrl - **参数**: - `$pick_code`: 文件提取码 - **返回值**: 文件下载地址信息数组 #### getVideoPlayUrl - **参数**: - `$pick_code`: 文件提取码 - **返回值**: 视频播放地址和相关数据数组 ### 7. 离线下载 #### parseTorrent - **参数**: - `$torrent_sha1`: BT种子文件sha1,需先上传到"云下载/种子文件"文件夹下(非硬性要求) - `$pick_code`: BT种子文件提取码 - **返回值**: 解析结果数组 #### getOfflineTaskList - **参数**: - `$page`: 获取列表第几页,如不传默认第一页 - **返回值**: 云下载任务列表数组 #### getOfflineQuotaInfo - **参数**: 无 - **返回值**: 云下载配额信息数组 #### clearOfflineTasks - **参数**: - `$flag`: 清除任务类型:0清空已完成、1清空全部、2清空失败、3清空进行中、4清空已完成任务并清空对应源文件、5清空全部任务并清空对应源文件 - **返回值**: 清空结果数组 #### addOfflineTaskUrls - **参数**: - `$urls`: 多个链接url,换行符分隔,支持HTTP(S)、FTP、磁力链和电驴链接 - `$wp_path_id`: 保存目标文件夹id;如不传或传0,则默认保存到根目录下面 - **返回值**: 添加结果数组 #### deleteOfflineTask - **参数**: - `$info_hash`: 需删除的任务hash - `$del_source_file`: 是否删除源文件:1删除;0不删除 - **返回值**: 删除结果数组 #### addOfflineTaskBt - **参数**: - `$info_hash`: BT任务hash - `$wanted`: BT任务选中下载文件索引,半角逗号隔开 - `$save_path`: BT任务文件保存路径 - `$torrent_sha1`: BT种子sha1 - `$pick_code`: BT种子的提取码 - `$wp_path_id`: 保存目标文件夹id - **返回值**: 添加结果数组 ## 注意事项 1. **授权流程**:授权码模式需要用户在浏览器中完成授权,然后通过回调地址获取code参数,再换取access_token。 2. **上传文件**:SDK只提供获取上传凭证和上传初始化的功能,实际的文件上传需要使用获取到的凭证调用对象存储服务。 3. **错误处理**:所有API方法都会返回一个包含state、message、code和data字段的数组,state为true表示成功,false表示失败。 4. **参数验证**:部分API方法对参数有特定要求,请参考API文档确保参数格式正确。 5. **频率限制**:请合理使用API,避免频繁调用导致被限流。 6. **安全措施**:请妥善保管app_secret和access_token,避免泄露。 ## 示例代码 详细的使用示例请参考 `demo.php` 文件。 ## 错误处理 SDK内置了错误处理机制,当请求失败或JSON解析失败时,会返回包含错误信息的数组: ```php // 示例错误返回 [ 'state' => false, 'message' => '请求失败: Connection timed out', 'code' => -1 ] ``` 建议在使用SDK时,对返回结果进行状态检查: ```php $response = $sdk->someMethod(); if ($response['state']) { // 处理成功逻辑 $data = $response['data']; } else { // 处理失败逻辑 echo "错误: {$response['message']}\n"; } ``` ## 版本信息 - 版本: 1.0.0 - 支持PHP 5.6+ - 依赖: cURL扩展 ## 许可证 本SDK采用 MIT 许可证。