首页 > 解决方案 > 获取 Dropbox 可共享链接元数据

问题描述

我被分配了一个项目,我需要从一个可共享的链接中获取以下 Dropbox 元数据。我需要获取路径以及共享的文件夹/文件的名称。

例如这里是一个链接https://www.dropbox.com/sh/7tlk1onrl2i7yjk/AABSsM8fWJ9RRmqU_n9ryLoya?dl=0

我需要返回名称“2021_10_03_1236_Audio Guideline”以及路径“/Z_Organisations/Goat_Ltd/Sent/2021_10_03_1236_Audio Guideline”。

我拥有存储要链接的文件夹/文件的保管箱,因此我应该能够获取路径。

我假设我很可能需要使用官方的 Dropbox API 来从链接中获取我需要的元数据,所以我可以阅读的任何示例或资源都会非常有帮助。

标签: phplaraveldropbox

解决方案


在搜索 Dropbox API 文档https://www.dropbox.com/developers/documentation/http/documentation后,我设法找到了解决此问题的方法

我写了下面的代码

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.dropboxapi.com/2/sharing/get_shared_link_metadata',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => '{"url": "' . $dropboxShareableLink . '"}',
    CURLOPT_HTTPHEADER => [
        'Content: application/json',
        'Authorization: Bearer ' . config('app.dropbox.access_token'),
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
$data = json_decode($response, true);

curl_close($curl);

这是使用get_shared_link_metadata端点从我在正文中传递的可共享链接中检索元数据。

您还需要在标题中传递您的保管箱 ACCESS_TOKEN 以确保您可以访问链接指向的文件。

注意- 您只能访问您的 ACCESS_TOKEN 有权查看的文件夹/文件的元数据。例如,如果您尝试访问其他人保管箱帐户上的文件,则会收到未经身份验证的错误。


推荐阅读