You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP无SDK调用Dropbox API获取文件列表返回NULL问题

解决PHP调用Dropbox API返回NULL的问题

先给你加上错误排查逻辑,运行下面的代码就能定位具体问题:

<?php

// 替换为你的Dropbox API凭证
$accessToken = 'my_correct_accessToken';

// 指定要浏览的Dropbox文件夹路径
$folderPath = '/Dropbox/Apps/Folder/';

// Dropbox API列出文件夹内容的端点
$apiEndpoint = 'https://api.dropboxapi.com/2/files/list_folder';

// API请求参数
$params = array(
    'path' => $folderPath,
    'recursive' => false,
    'include_media_info' => false,
    'include_deleted' => false,
    'include_has_explicit_shared_members' => false
);

// 先检查JSON编码是否成功
$jsonParams = json_encode($params);
if ($jsonParams === false) {
    die('JSON编码失败:' . json_last_error_msg());
}

// 初始化CURL请求
$ch = curl_init($apiEndpoint);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
    'Content-Type: application/json'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonParams);

// 调试临时关闭SSL证书验证(生产环境需恢复验证)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

// 执行请求并获取响应
$response = curl_exec($ch);

// 检查CURL请求是否出错
if (curl_errno($ch)) {
    die('CURL请求错误:' . curl_error($ch));
}

// 输出原始响应内容,方便排查API返回信息
echo '原始响应内容:<pre>' . htmlspecialchars($response) . '</pre>';

curl_close($ch);

// 解析JSON响应
$responseData = json_decode($response, true);

// 检查JSON解析是否失败
if ($responseData === null) {
    die('JSON解析失败:' . json_last_error_msg());
}

// 输出解析后的响应
var_dump($responseData);

// 生成PDF文件链接的HTML内容
$htmlOutput = '<h1>Dropbox文件夹中的PDF文件</h1>';
if (isset($responseData['entries']) && count($responseData['entries']) > 0) {
    $htmlOutput .= '<ul>';
    foreach ($responseData['entries'] as $entry) {
        if ($entry['.tag'] === 'file' && pathinfo($entry['name'], PATHINFO_EXTENSION) === 'pdf') {
            $fileName = $entry['name'];
            $fileId = $entry['id'];
            $htmlOutput .= '<li><a href="https://www.dropbox.com/s/' . $fileId . '?dl=1" target="_blank">' . $fileName . '</a></li>';
        }
    }
    $htmlOutput .= '</ul>';
} else {
    $htmlOutput .= '<p>指定文件夹中未找到PDF文件。</p>';
}

// 输出HTML内容
echo $htmlOutput;

?>

常见问题排查方向

  • SSL证书验证失败:PHP 5.6默认强制验证SSL证书,本地环境若未配置正确CA证书会导致请求被拒。上面代码临时关闭了验证,生产环境建议下载官方CA证书文件,通过CURLOPT_CAINFO参数指定证书路径。
  • Access Token问题:如果原始响应返回invalid_access_token类错误,说明Token无效或无目标文件夹读取权限,需去Dropbox开发者后台重新生成或检查权限配置。
  • 文件夹路径错误:Dropbox API的路径从根目录/开始,若你的App对应文件夹是/Apps/Folder/,则无需加前缀/Dropbox/,错误路径会导致API返回非JSON格式错误信息,进而解析为NULL。
  • JSON解析失败:通过json_last_error_msg()可查看具体错误,若返回语法错误,说明API返回的不是有效JSON,需根据原始响应内容调整请求参数或排查API状态。

内容的提问来源于stack exchange,提问作者JotaJotaGon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 05:22:40