只读Dropbox集成,支持浏览、搜索和下载Dropbox文件。包含自动OAuth令牌刷新、安全凭证存储和详细设置指南。适合在OpenClaw中访问Dropbox文件,无需写入权限。
Dropbox Integration是一项面向实际任务的技能,主要用于Overview. 此技能提供只读权限访问您的 Dropbox 账户, 允许您浏览文件夹, 搜索文件, 并从 OpenClaw 下载内容;它使用 OAuth 2.0 au。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
本技能提供对您的 Dropbox 账户的只读访问权限,使您能够通过 OpenClaw 浏览文件夹、搜索文件以及下载内容。它采用 OAuth 2.0 认证机制,并支持自动刷新访问令牌,从而实现无缝的长期访问。
适用场景:在无需担心误修改或误删除的情况下,安全访问您的 Dropbox 文件。
本技能配置为只读访问,所需 Dropbox 权限范围(scopes)如下:
files.metadata.read — 读取文件/文件夹元数据files.content.read — 读取文件内容account_info.read — 读取账户信息未包含的权限:
files.content.write — 不可上传或修改文件files.metadata.write — 不可重命名或移动文件files.permanent_delete — 不可删除文件该设计确保您的 Dropbox 内容不会因误操作而被修改。
在使用本技能前,您需要完成以下准备:
dropbox 包(将自动安装)配置耗时:约 10 分钟
详见《配置指南》获取分步说明。
访问 https://www.dropbox.com/developers/apps/create 创建新应用:
在您的 App 设置中执行以下操作:
http://localhost:3000/callbackfiles.metadata.readfiles.content.readaccount_info.read在技能目录下创建 credentials.json 文件:
{
"app_key": "your_dropbox_app_key_here",
"app_secret": "your_dropbox_app_secret_here"
}
重要提示:该文件已被加入 .gitignore,绝不会被提交至版本库。
node setup-oauth.js
该命令将执行以下操作:
token.jsonnode test-connection.js
若成功,您将看到自己的 Dropbox 账户信息!
# 列出根目录 node browse.js # 列出指定文件夹 node browse.js "/Documents" node browse.js "/Photos/2024"
输出示例:
📁 Listing: /Documents 📄 report.pdf (2.3 MB) - 2024-02-01 📄 presentation.pptx (5.1 MB) - 2024-01-28 📁 Projects 📁 Archive Total: 4 items
node search-files.js "budget 2024" node search-files.js "contract"
输出示例:
🔍 Searching for: "budget 2024" ✅ Found 3 matches: 📄 /Finance/budget-2024-q1.xlsx Size: 156.3 KB Modified: 2024-01-15T10:30:00Z 📄 /Reports/budget-2024-summary.pdf Size: 2.1 MB Modified: 2024-02-01T14:22:00Z
# 下载至本地指定路径 node download.js "/Documents/report.pdf" "./downloads/report.pdf" # 下载至当前目录 node download.js "/Photos/vacation.jpg" "./vacation.jpg"
输出示例:
📥 Downloading: /Documents/report.pdf ✅ Saved to: ./downloads/report.pdf (2.3 MB)
在 OpenClaw 中,您可通过 exec 工具运行这些脚本:
浏览文件:
Run: node /path/to/dropbox-integration/browse.js "/Documents"
搜索文件:
Run: node /path/to/dropbox-integration/search-files.js "contract"
下载文件:
Run: node /path/to/dropbox-integration/download.js "/path/in/dropbox" "./local/path"
您也可直接调用 dropbox-helper.js 模块构建自定义自动化工作流。
token.jsondropbox-helper.js 透明完成dropbox-integration/
├── SKILL.md # 本文档
├── dropbox-helper.js # 支持自动刷新的 Dropbox 客户端封装
├── setup-oauth.js # OAuth 配置脚本
├── browse.js # 浏览文件夹
├── search-files.js # 搜索文件
├── download.js # 下载文件
├── test-connection.js # 认证测试脚本
├── credentials.json.example # 凭据模板文件
├── .gitignore # 排除 credentials.json 和 token.json
└── references/
└── setup-guide.md # 详细配置指南(含截图)
请按快速上手第 3 步说明,创建包含 Dropbox App key 和 secret 的 credentials.json 文件。
您的刷新令牌可能已被撤销。请重新运行 node setup-oauth.js 完成重新授权。
请确认已在 Dropbox App 控制台的 Permissions 标签页中启用了必需的权限项。
请确认已在 Dropbox App Console 中将 http://localhost:3000/callback 添加至应用的重定向 URI 列表。
若本地服务器未能捕获重定向,请在浏览器完成授权后,手动复制完整 URL,并从中提取 code= 参数值。
credentials.json 与 token.json 均已列入 .gitignore如需构建自定义集成,可直接引入 helper 模块:
const { getDropboxClient } = require('./dropbox-helper');
async function myCustomFunction() {
const dbx = await getDropboxClient(); // 自动刷新的客户端
// 可调用任意 Dropbox SDK 方法
const response = await dbx.filesListFolder({ path: '/Photos' });
console.log(response.result.entries);
}
该 helper 模块自动处理令牌刷新,您无需关心过期问题。
按顺序下载多个文件:
const { getDropboxClient } = require('./dropbox-helper');
const fs = require('fs').promises;
async function downloadMultiple(files) {
const dbx = await getDropboxClient();
for (const file of files) {
const response = await dbx.filesDownload({ path: file.dropboxPath });
await fs.writeFile(file.localPath, response.result.fileBinary);
console.log(`Downloaded: ${file.dropboxPath}`);
}
}
本技能依赖 dropbox npm 包:
npm install dropbox
当您通过 ClawHub 安装本技能时,该包将自动安装。
MIT 协议 — 免费使用、修改与分发。
如遇问题或疑问,请参考以下途径:
注意:本技能面向个人使用场景设计。对于面向多用户的生产级应用,请考虑实现完整的 OAuth 流程,包括 state 状态管理及并发用户的错误处理机制。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习