有道云笔记是一款广受欢迎的云笔记工具,可以将笔记保存在云端,随时随地进行查看和编辑。但是,在使用有道云笔记时,用户发现其文件下载直链为临时链接,仅在一定时间内有效,不便于长期使用。因此,有道云笔记永久直链解析接口应运而生。
调用地址
api.php/?url=有道云笔记文件分享链接&json=true
Type参数详解
url:有道云笔记文件分享地址(支持短链接)
json:非必须,是否返回 json 格式
<?php
// 验证请求是否合法,防止恶意请求
if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
http_response_code(400);
echo json_encode(['error' => 'Invalid request method']);
exit;
}
// 获取传入的链接参数
if (!isset($_GET['url'])) {
http_response_code(400);
echo json_encode(['error' => 'Missing url parameter']);
exit;
}
$url = $_GET['url'];
$json = isset($_GET['json']) && $_GET['json'] == 'ture';
// 获取跳转后的链接
function getRedirectUrl($url) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_NOBODY => true, // 只获取响应头,不获取响应体
CURLOPT_HEADER => true, // 将响应头包含在输出中
CURLOPT_CONNECTTIMEOUT => 5, // 设置连接超时时间为5秒
CURLOPT_TIMEOUT => 10 // 设置请求超时时间为10秒
]);
curl_exec($curl);
$redirectUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
curl_close($curl);
return $redirectUrl;
}
$redirectUrl = getRedirectUrl($url);
// 提取链接中的ID值
$queryString = parse_url($redirectUrl, PHP_URL_QUERY);
parse_str($queryString, $params);
$id = isset($params['id']) ? $params['id'] : '';
if (empty($id)) {
http_response_code(400);
echo json_encode(['error' => 'Invalid url parameter']);
exit;
}
// 构建API请求链接
$apiUrl = "http://note.youdao.com/yws/public/note/{$id}?editorType=0&cstk=cGtjFpHb";
// 发送API请求
$curl = curl_init($apiUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($curl);
curl_close($curl);
if (!$res) {
http_response_code(500);
echo json_encode(['error' => 'Failed to fetch API response']);
exit;
}
// 解析API响应
$resArr = json_decode($res, true);
if (!$resArr || !isset($resArr['p'])) {
// 打印API响应内容进行调试
var_dump($res);
http_response_code(500);
echo json_encode(['error' => 'Invalid API response']);
exit;
}
// 提取p值
$p = trim($resArr['p'], '/');
// 构建下载链接
$downUrl = "http://note.youdao.com/yws/api/personal/file/{$p}?method=download&inline=true&shareKey={$id}";
// 返回下载链接
if ($json) {
echo json_encode(['downloadUrl' => $downUrl]);
} else {
echo $downUrl;
}
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!